Java代码实现 合并两个immutablelist类型数据,按照第二个immutablelist对象排序,删除第一个immutablelist对象中的重复数据
时间: 2023-08-16 13:07:08 浏览: 159
好的,以下是Java代码实现:
```java
import java.util.*;
public class MergeSortRemoveDuplicates {
public static List<String> mergeSortRemoveDuplicates(List<String> list1, List<String> list2) {
// 合并两个immutable list
List<String> mergedList = new ArrayList<>();
mergedList.addAll(list1);
mergedList.addAll(list2);
// 按照第二个list排序
Collections.sort(mergedList, new Comparator<String>() {
public int compare(String s1, String s2) {
return Integer.compare(list2.indexOf(s1), list2.indexOf(s2));
}
});
// 删除第一个list中的重复数据
Set<String> set = new LinkedHashSet<>(list1);
List<String> removedDuplicatesList = new ArrayList<>(set);
return new ArrayList<>(removedDuplicatesList) {{
addAll(list2);
}};
}
public static void main(String[] args) {
List<String> list1 = Arrays.asList("A", "B", "C", "D", "B", "C", "E");
List<String> list2 = Arrays.asList("D", "E", "F", "G", "H");
List<String> mergedList = mergeSortRemoveDuplicates(list1, list2);
System.out.println(mergedList);
}
}
```
这个Java函数也是接受两个immutable list类型的参数,将它们合并,并按照第二个list排序。然后,它使用LinkedHashSet去重第一个list中的元素,并将两个list合并返回。请注意,这个函数返回的是一个新的list对象,而不是修改原有的list对象。
阅读全文