高效找出一个list中相同的和不同的元素Java
时间: 2023-06-03 10:02:01 浏览: 69
你好,这是一个技术问题,我可以回答。
要找出一个列表中相同和不同的元素,可以使用Java中的HashSet。
1. 首先,将列表中的元素添加到两个HashSet中,一个用于存储相同的元素,另一个用于存储不同的元素。
2. 遍历原始列表中的每个元素,判断该元素是否存在于相同元素的HashSet中。如果是,则将其添加到该HashSet中,否则将其添加到不同元素的HashSet中。
3. 最后,打印出相同和不同元素的列表。
以下是Java代码示例:
```
List<String> list = Arrays.asList("apple", "banana", "cherry", "cherry", "date", "date");
Set<String> same = new HashSet<>();
Set<String> different = new HashSet<>();
for (String s : list) {
if (!same.add(s)) {
different.add(s);
}
}
same.forEach(System.out::println); // 输出 "date" 和 "cherry"
different.forEach(System.out::println); // 输出 "apple" 和 "banana"
```
希望能对你有所帮助。
相关问题
Java找出两个list中不同的元素
你可以使用Java中的`retainAll()`方法来找出两个List中不同的元素。这个方法会移除List中与指定集合不相同的元素,返回一个新的List。以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list2.add(4);
List<Integer> differentElements = new ArrayList<>(list1);
differentElements.removeAll(list2);
System.out.println("List1: " + list1);
System.out.println("List2: " + list2);
System.out.println("Different Elements: " + differentElements);
}
}
```
这段代码中,我们创建了两个List `list1` 和 `list2`,并且分别添加了一些元素。然后,我们将 `list1` 的所有元素复制到 `differentElements` 中,使用 `removeAll()` 方法移除 `list2` 中的相同元素。最终,`differentElements` 中存储的就是两个List中不同的元素。
java,找出一个list中null元素的位置
你可以使用Java的List的indexOf方法来找出一个List中null元素的位置。这个方法返回指定元素在List中首次出现的索引,如果List中不包含该元素,则返回-1。以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add(null);
list.add("orange");
list.add(null);
int index1 = list.indexOf(null);
System.out.println("第一个null元素的位置:" + index1);
int index2 = list.lastIndexOf(null);
System.out.println("最后一个null元素的位置:" + index2);
}
}
```
输出结果为:
```
第一个null元素的位置:1
最后一个null元素的位置:3
```
在这个示例中,我们创建了一个包含null元素的List,并使用indexOf方法找到了第一个null元素的位置,使用lastIndexOf方法找到了最后一个null元素的位置。