在Java中按字母顺序手动排序字符串的ArrayList

时间:2015-11-01 01:11:36

标签: java sorting arraylist

我正在尝试按字母顺序为一个赋值重新排序一个ArrayList。我不允许使用任何方法进行自动排序,必须手动完成。这是我尝试过的代码,但它甚至都没有运行。我对此表示感谢。

import java.util.ArrayList;

public class SortArrayList {
    public static void main(String[] args) {
        ArrayList<String> values = new ArrayList<String>();
        public static void main(String[] args) {
        ArrayList<String> values = new ArrayList<String>();
        values.add("car");
        values.add("bear");
        values.add("apple");
        values.add("xray");
        sort(values);
        for (int i = 0; i < values.size(); i++)
            System.out.println(values.get(i));
    }

    public static void sort(ArrayList<String> x) {
        String temp;
        for (int i = 0; i < x.size() - 1; i++) {
            for (int j = i + 1; j < x.size(); j++) {
                if (x.get(i).compareToIgnoreCase(x.get(j)) > 0) {
                    temp = x.get(i);
                    x.add(i,x.get(j));
                    x.add(j,temp); 

                }
            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

x.add(i,x.get(j));
x.add(j,temp);

正在向ArrayList添加更多元素。你应该把它们改成

x.set(i, x.get(j));
x.set(j, temp);

以便它取代那些位置的元素。

答案 1 :(得分:0)

除非你为你的问题复制了多次调用public static void main(String [] args)这是一个错字,否则这会导致运行程序时出现问题,因为它不知道从哪里开始