Java中,有一个类型为String的List封装了很多同样为String的List,如何根据每个List的第三个值将这些List进行排序
时间: 2023-04-04 12:04:37 浏览: 105
可以使用Java中的Collections.sort()方法,同时传入一个Comparator对象,实现根据每个List的第三个值进行排序。具体实现可以参考以下代码:
```
List<List<String>> list = new ArrayList<>();
// 添加多个同样为String的List到list中
Collections.sort(list, new Comparator<List<String>>() {
@Override
public int compare(List<String> o1, List<String> o2) {
return o1.get(2).compareTo(o2.get(2));
}
});
```
以上代码中,我们传入了一个Comparator对象,重写了compare()方法,比较的是每个List的第三个值,返回值为正数表示o1大于o2,负数表示o1小于o2,0表示相等。最后使用Collections.sort()方法进行排序即可。
相关问题
Java中,有一个类型为String的List1封装了很多同样为String的小list,如何根据每个小list的第三个值将这些小list进行排序并封装回List
可以使用Java中的Collections.sort()方法和Comparator接口来实现。首先,我们需要自定义一个Comparator接口的实现类,用于比较每个小list的第三个值。然后,使用Collections.sort()方法对List1进行排序即可。
示例代码如下:
```
import java.util.*;
public class Main {
public static void main(String[] args) {
List<List<String>> list1 = new ArrayList<>();
List<String> list2 = Arrays.asList("a", "b", "3");
List<String> list3 = Arrays.asList("c", "d", "1");
List<String> list4 = Arrays.asList("e", "f", "2");
list1.add(list2);
list1.add(list3);
list1.add(list4);
Collections.sort(list1, new Comparator<List<String>>() {
@Override
public int compare(List<String> o1, List<String> o2) {
return o1.get(2).compareTo(o2.get(2));
}
});
System.out.println(list1);
}
}
```
输出结果为:[[c, d, 1], [e, f, 2], [a, b, 3]]
Java中,有一个类型为String的List封装了很多同样为String的小list,循环所有的小list,封装到key和value都是String的HashMap中
可以使用如下代码实现:
List<List<String>> list = new ArrayList<>();
Map<String, String> map = new HashMap<>();
for (List<String> subList : list) {
for (String str : subList) {
map.put(str, str);
}
}
阅读全文