java中List<String>过滤重复的数据
时间: 2024-02-16 16:03:38 浏览: 76
在Java中,你可以使用Set来过滤List中的重复元素。具体来说,你可以将List转换成Set,然后再将Set转换回List,这样就会自动去除List中的重复元素。以下是示例代码:
```java
List<String> myList = Arrays.asList("a", "b", "c", "b", "d", "e", "a");
Set<String> mySet = new HashSet<>(myList);
List<String> filteredList = new ArrayList<>(mySet);
System.out.println(filteredList);
```
以上代码会输出`[a, b, c, d, e]`,即过滤出列表中的重复元素。在上述代码中,首先将List转换成HashSet,这样就会自动去除List中的重复元素。然后,再将HashSet转换回ArrayList,得到最终结果。
相关问题
java中List<string> list1和List<string> list2 取list1中含有几个list2中的值
可以使用Java 8的Stream API来实现这个功能。具体实现步骤如下:
1.使用`filter`方法过滤出`list1`中包含`list2`中值的元素。
2.使用`count`方法统计符合条件的元素个数。
代码示例:
```
List<String> list1 = Arrays.asList("apple", "banana", "orange", "pear", "peach");
List<String> list2 = Arrays.asList("banana", "pear");
long count = list1.stream()
.filter(list2::contains)
.count();
System.out.println(count); // 输出结果为2
```
解释一下上面的代码:
首先定义了两个字符串列表`list1`和`list2`,然后使用`stream`方法将`list1`转换为一个流。
接着使用`filter`方法过滤出`list1`中包含`list2`中值的元素,`list2::contains`表示使用`list2`的`contains`方法来判断。
最后使用`count`方法统计符合条件的元素个数,输出结果为2。
java 一个List<String>集合 和 一个 List<JSONObject>集合 ,求 List<JSONObject>集合中 JSONObject包含 List<String>里的String,用 lambda 表达式处理
可以使用Lambda表达式中的filter()方法和anyMatch()方法来实现这个需求。
假设有两个集合,一个是List<String> stringList,另一个是List<JSONObject> jsonObjectList,现在需要找到jsonObjectList中所有包含stringList中字符串的JSONObject对象。
代码如下:
```java
List<JSONObject> resultList = jsonObjectList.stream()
.filter(jsonObject -> stringList.stream()
.anyMatch(s -> jsonObject.toString().contains(s)))
.collect(Collectors.toList());
```
首先使用stream()方法将jsonObjectList转换成Stream对象,然后使用filter()方法过滤出符合条件的JSONObject对象。在filter()方法中,使用anyMatch()方法来判断jsonObject.toString()是否包含stringList中的某个字符串。
最后使用collect()方法将过滤出来的JSONObject对象收集到一个List集合中并返回即可。
需要注意的是,上述代码中的contains()方法是判断字符串是否包含某个子字符串,如果需要判断JSONObject对象中是否存在某个属性,可以使用get()方法获取属性值,然后再使用contains()方法判断即可。
阅读全文