如何在Java中对字符串的ArrayList进行排序?
我有随机放入ArrayList
String
。
private ArrayList teamsName = new ArrayList(); 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]
。
Collections.sort(teamsName.subList(1, teamsName.size()));
上面的代码将反映原始列表的实际子列表。
检查Collections#sort
方法。 这会根据自然顺序自动对您的列表进行排序。 您可以使用List#subList
方法在您获得的每个子列表上应用此方法。
private List teamsName = new ArrayList (); List subList = teamsName.subList(1, teamsName.size()); Collections.sort(subList);
看一下Collections.sort(List
。
您只需删除第一个元素,对列表进行排序,然后再将其添加回来。
您可以直接对helper[]
数组进行排序:
java.util.Arrays.sort(helper, 1, helper.length);
将数组从索引1排序到结尾。 使索引0处的第一个项目保持不变。
请参阅Arrays.sort(Object [] a,int fromIndex,int toIndex)
您可以使用自动排序列表值的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 tree = new TreeSet (); 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’。