Java 基于索引对列表中的字符串进行排序

Java 基于索引对列表中的字符串进行排序,java,string,sorting,arraylist,Java,String,Sorting,Arraylist,如果我有一个字符串的ArrayList [“bb”、“ab”、“cf”、“aa”]如何按字母顺序按第1个或第n个索引及以后进行排序(如果第1个索引与其他字符串的字符相同)?有什么方法可以让我这样做吗 在上面的列表中,我希望index=1 [“aa”、“bb”、“ab”、“cf”] 另一个例子是 [“bab”、“baa”、“abbe”、“cff”]将返回 [“baa”、“bab”、“abbe”、“cff”]您可以使用比较器。comparingit执行此排序: 使用索引0对数组排序: String[

如果我有一个字符串的
ArrayList
[“bb”、“ab”、“cf”、“aa”]
如何按字母顺序按第1个或第n个索引及以后进行排序(如果第1个索引与其他字符串的字符相同)?有什么方法可以让我这样做吗

在上面的列表中,我希望index=1

[“aa”、“bb”、“ab”、“cf”]

另一个例子是

[“bab”、“baa”、“abbe”、“cff”]
将返回


[“baa”、“bab”、“abbe”、“cff”]
您可以使用
比较器。comparingit
执行此排序:

使用索引
0
对数组排序:

String[] s = {"bb", "ab", "cf", "aa"};
Arrays.sort(s, Comparator.comparingInt(s1 -> s1.charAt(0)));
Arrays.asList(s).forEach(System.out::println);
String[] s = {"bb", "ab", "cf", "aa"};
Arrays.sort(s, Comparator.comparingInt(s2 -> s2.charAt(1)));
Arrays.asList(s).forEach(System.out::println);
或排序列表:

List<String> s = Arrays.asList("bb", "ab", "cf", "aa");
s.sort(Comparator.comparingInt(s2 -> s2.charAt(0)));
s.forEach(System.out::println);
否则,对排序数组使用索引
1

String[] s = {"bb", "ab", "cf", "aa"};
Arrays.sort(s, Comparator.comparingInt(s1 -> s1.charAt(0)));
Arrays.asList(s).forEach(System.out::println);
String[] s = {"bb", "ab", "cf", "aa"};
Arrays.sort(s, Comparator.comparingInt(s2 -> s2.charAt(1)));
Arrays.asList(s).forEach(System.out::println);
或用于排序列表的索引1

List<String> s = Arrays.asList("bb", "ab", "cf", "aa");  
s.sort(Comparator.comparingInt(s2 -> s2.charAt(1)));
s.forEach(System.out::println);

PS:您对
java
提出了疑问,但您的
字符串和
数组类似于
javascript

看看这个简单的例子:

 public static void main(String[] args) {
        List<String> listOfStrings = new LinkedList<>();
        listOfStrings.add("aa");
        listOfStrings.add("bb");
        listOfStrings.add("ge");
        listOfStrings.add("be");
        System.out.println(Arrays.asList(listOfStrings));
        String getMe = listOfStrings.remove(3);
        listOfStrings.add(0, getMe);
        System.out.println(Arrays.asList(listOfStrings));
    }
publicstaticvoidmain(字符串[]args){
List listofstring=newlinkedlist();
添加(“aa”);
添加(“bb”);
添加(“ge”);
添加(“be”);
System.out.println(Arrays.asList(listofstring));
String getMe=listOfStrings.remove(3);
添加(0,getMe);
System.out.println(Arrays.asList(listofstring));
}

LinkedList
有利于插入和删除元素,这可以在
O(1)
中完成(在本地更改),我还想指出的是,添加或删除列表标题也可以在
O(1)
中完成,这对您的事业来说是最佳的。

可能的重复(p.s.不是向下投票人)使用比较器提取两个字符串的第n个字符并对其进行比较是不正确的。至少尝试一下。