java中List<string> list1和List<string> list2 取list1中含有几个list2中的值
时间: 2024-02-05 22:10:54 浏览: 19
可以使用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。
相关问题
List<string> list1和List<string> list2 取list1中含有几个list2中的值
可以使用 LINQ 的 `Intersect` 方法来获取两个列表中的交集,然后计算交集的数量。示例代码如下:
```csharp
List<string> list1 = new List<string> { "apple", "banana", "orange", "pear", "peach" };
List<string> list2 = new List<string> { "banana", "grape", "pear" };
int count = list1.Intersect(list2).Count();
Console.WriteLine(count); // 输出:2
```
在上面的代码中,`Intersect` 方法获取了 `list1` 和 `list2` 中的交集,即包含在两个列表中的相同元素。然后使用 `Count` 方法计算交集的数量。在这个示例中,交集为 `{"banana", "pear"}`,所以 count 的值为 2。
Java 中list<list<String>>结构如何判断里面的list<String>数据重复
要判断 `List<List<String>>` 结构中的 `List<String>` 是否存在重复数据,可以使用以下方法:
1. 创建一个 `Set<String>` 集合,用于存储所有的字符串数据。
2. 遍历外层的 `List<List<String>>` 结构,获取每个内层的 `List<String>`。
3. 遍历内层的 `List<String>`,将每个字符串添加到集合中。
4. 在添加之前,可以使用 `contains()` 方法来检查集合中是否已经存在相同的字符串。如果存在重复,则可以做出相应的处理。
下面是一个示例代码:
```java
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
List<List<String>> listOfLists = ...; // 假设这是你的 List<List<String>> 结构
Set<String> set = new HashSet<>();
for (List<String> list : listOfLists) {
for (String str : list) {
if (set.contains(str)) {
// 处理重复数据
System.out.println("重复数据: " + str);
} else {
set.add(str);
}
}
}
}
}
```
在上面的示例中,我们使用了 `HashSet` 集合来存储所有的字符串数据,因为它可以快速判断是否已经存在相同的字符串。当发现重复数据时,你可以根据需求进行相应的处理。