如何在Java中对字符串数组列表排序?

m2xkgtsf  于 2023-02-28  发布在  Java
关注(0)|答案(5)|浏览(141)

我有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.

考虑到你不能控制输入的事实(例如,进入数组列表的字符串是随机的;斑马或龙),那么一旦数组列表填充了输入,我如何将它们按字母顺序排序(不包括第一个)?
teamsName[0]是合适的;按字母顺序排序teamsName[1 to teamsName.size]

kq0g1dla

kq0g1dla1#

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

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

vecaoik1

vecaoik12#

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

private List<String> teamsName = new ArrayList<String>();
List<String> subList = teamsName.subList(1, teamsName.size());
Collections.sort(subList);
5uzkadbs

5uzkadbs3#

看一看Collections.sort(List<T> list)
您可以简单地删除第一个元素,对列表进行排序,然后再将其添加回来。

f45qwnt8

f45qwnt84#

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

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

从索引1到末尾对数组排序。索引0处的第一项保持不变。
sort(Object[] a,整数fromIndex,整数toIndex)

qnakjoqk

qnakjoqk5#

您可以使用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'。

相关问题