我有String
随机放入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]
。
答案 0 :(得分:36)
Collections.sort(teamsName.subList(1, teamsName.size()));
上面的代码将反映原始列表的实际子列表。
答案 1 :(得分:10)
检查Collections#sort
方法。这会根据自然顺序自动对您的列表进行排序。您可以使用List#subList
方法在您获得的每个子列表中应用此方法。
private List<String> teamsName = new ArrayList<String>();
List<String> subList = teamsName.subList(1, teamsName.size());
Collections.sort(subList);
答案 2 :(得分:5)
查看Collections.sort(List<T> list)
。
您只需删除第一个元素,对列表进行排序,然后重新添加即可。
答案 3 :(得分:5)
您可以直接对helper[]
数组进行排序:
java.util.Arrays.sort(helper, 1, helper.length);
将数组从索引1排序到结尾。保留索引0处的第一个项目不受影响。
答案 4 :(得分: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() + " ");
}
}
}
我最后添加了一个&#39;但最后一个元素必须是&#39; c&#39;。