使用java,有一个大List为String类型,List封装了很多也是String类型的小list,根据小list的第一个值对所有小list进行倒序排序
时间: 2023-04-10 11:01:00 浏览: 108
可以使用Java8的Stream API来实现这个功能,代码如下:
```
List<List<String>> bigList = ...; // 大List为String类型,封装了很多也是String类型的小list
bigList.forEach(Collections::sort); // 先对每个小list进行排序
Collections.sort(bigList, (o1, o2) -> o2.get(0).compareTo(o1.get(0))); // 再根据小list的第一个值进行倒序排序
```
这段代码先对每个小list进行排序,然后再根据小list的第一个值进行倒序排序。
相关问题
Android studio 有一个string 一个int类型的 list 现在要根据string类型的去重如何处理 使用java
在Android Studio中,如果你有一个包含字符串(String)和整数(Int)的List,想要根据字符串值去重,你可以按照以下步骤操作:
1. 首先,你需要创建一个Map<String, List<Integer>>。Map的数据结构可以很好地存储键值对,这里键是字符串,值是一个保存对应字符串下所有整数的列表。
```java
Map<String, List<Integer>> map = new HashMap<>();
```
2. 对于List中的每个元素(假设它是一个包含String和Integer的对象),检查字符串是否已经在Map中。如果不在,将字符串添加为键,并将该整数添加到对应的值列表中。如果已经存在,就跳过这个整数。
```java
for (Object obj : yourList) {
String str = (String) obj; // 假设obj是封装了String和Integer的复合对象
if (!map.containsKey(str)) {
List<Integer> intList = new ArrayList<>();
intList.add(((YourCompositeObject) obj).getIntValue()); // 获取并添加整数值
map.put(str, intList);
}
}
```
3. 这样,`map`中的键就是唯一的字符串值,而对应的值列表则包含了所有与其关联的唯一整数。
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]]
阅读全文