31

我有随机String放入的 s 。ArrayList

private ArrayList<String> teamsName = new ArrayList<String>();
String[] helper; 

例如:

teamsName.add(helper[0]) where helper[0] = "dragon";   
teamsName.add(helper[1]) where helper[1] = "zebra";   
teamsName.add(helper[2]) where helper[2] = "tigers" // and so forth up to about 150 strings.

鉴于您无法控制输入(即进入 ArrayList 的字符串是随机的;斑马或龙以任何顺序),一旦 ArrayList 充满输入,我如何按字母顺序对它们进行排序,不包括第一个?

teamsName[0]很好;按字母顺序排序teamsName[1 to teamsName.size]

4

5 回答 5

37
Collections.sort(teamsName.subList(1, teamsName.size()));

上面的代码将反映已排序的原始列表的实际子列表。

于 2012-10-24T09:40:23.027 回答
11

检查Collections#sort方法。这会根据自然顺序自动对您的列表进行排序。您可以将此方法应用于使用List#subList方法获得的每个子列表。

private List<String> teamsName = new ArrayList<String>();
List<String> subList = teamsName.subList(1, teamsName.size());
Collections.sort(subList);
于 2012-10-24T09:40:16.857 回答
6

看看Collections.sort(List<T> list)

您可以简单地删除第一个元素,对列表进行排序,然后重新添加。

于 2012-10-24T09:39:43.957 回答
5

您可以helper[]直接对数组进行排序:

java.util.Arrays.sort(helper, 1, helper.length);

对数组从索引 1 到末尾进行排序。保持索引 0 处的第一项不变。

参见Arrays.sort(Object[] a, int fromIndex, int toIndex)

于 2012-10-24T09:41:22.537 回答
2

您可以使用TreeSet该自动排序列表值:

import java.util.Iterator;
import java.util.TreeSet;

public class TreeSetExample {

    public static void main(String[] args) {
        System.out.println("Tree Set Example!\n");

        TreeSet <String>tree = new TreeSet<String>();
        tree.add("aaa");
        tree.add("acbbb");
        tree.add("aab");
        tree.add("c");
        tree.add("a");

        Iterator iterator;
        iterator = tree.iterator();

        System.out.print("Tree set data: ");

        //Displaying the Tree set data
        while (iterator.hasNext()){
            System.out.print(iterator.next() + " ");
        }
    }

}

我最后添加了“a”,但最后一个元素必须是“c”。

于 2012-10-24T09:57:34.563 回答