list.retainAll
时间: 2023-08-07 22:23:03 浏览: 51
`List.retainAll(Collection<?> c)` 方法可以用于求两个集合的交集。它的作用是将当前集合中所有不属于指定集合 `c` 的元素移除,保留属于指定集合 `c` 的元素。
以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = new ArrayList<Integer>(Arrays.asList(3, 4, 5, 6, 7));
list1.retainAll(list2);
System.out.println(list1);
}
}
```
在这个例子中,我们定义了两个 `List`,分别为 `list1` 和 `list2`,它们包含了一些元素。接着,我们调用 `list1.retainAll(list2)` 方法,将 `list1` 中不属于 `list2` 的元素移除,最终得到 `list1` 和 `list2` 的交集。
输出结果为:`[3, 4, 5]`。
相关问题
list.retainall
list.retainAll(Collection<?> c) 方法是用于保留列表中包含在指定集合中的元素,移除其他不包含在指定集合中的元素。它返回一个布尔值,表示是否对列表进行了修改。
例如,如果我们有一个名为list的列表,它包含元素 {1, 2, 3, 4, 5},我们调用list.retainAll(Arrays.asList(2, 4, 6)),则列表将只保留包含在指定集合 {2, 4, 6} 中的元素。在这种情况下,列表将被修改为 {2, 4},并且方法将返回 true。
需要注意的是,retainAll 方法使用对象的 equals 方法来比较元素是否相等。因此,在使用该方法时,要确保集合中的元素正确实现了 equals 方法。
.retainAll
.retainAll()方法的作用是将一个集合与另一个集合进行求交集的操作,并将结果存放在第一个集合中。如果第一个集合的大小发生了改变,返回true;如果第一个集合的大小没有发生改变,返回false。因此,该方法的返回值不能用于判断两个集合是否存在交集,只能用于判断集合大小是否发生改变。
在给出的代码示例中,origin和list1是两个集合。通过调用origin.retainAll(list1),实际上是求origin和list1的交集,并将结果存放在origin中。如果交集非空,返回值为false,即集合大小没有发生改变;如果交集为空,返回值为true,即集合大小发生了改变。
回答完问题后,我提出以下