retainall的用法
时间: 2024-05-08 14:17:48 浏览: 9
retainAll()是Collection接口中的方法,用于保留集合中与指定集合相同的元素,即删除集合中不在指定集合中的元素。其语法如下:
```
boolean retainAll(Collection<?> c)
```
其中,c表示指定集合。
使用示例:
```
ArrayList<String> list1 = new ArrayList<String>();
list1.add("apple");
list1.add("banana");
list1.add("orange");
ArrayList<String> list2 = new ArrayList<String>();
list2.add("banana");
list2.add("orange");
list2.add("grape");
list1.retainAll(list2); // 保留list1中与list2相同的元素
System.out.println(list1); // 输出 [banana, orange]
```
在上面的例子中,list1和list2分别为两个字符串类型的ArrayList集合。使用retainAll()方法后,list1中只保留了与list2相同的元素,即"banana"和"orange",而"apple"被删除了。
相关问题
java retainall的用法
`retainAll()` 是 Java 集合框架中的一个方法,用于从集合中保留与指定集合相同的元素。它的语法如下:
```java
public boolean retainAll(Collection<?> c)
```
其中,`c` 是要与当前集合进行比较的集合。
这个方法会返回一个布尔值,表示当前集合是否发生了变化。如果当前集合发生了变化,则返回 `true`,否则返回 `false`。
举个例子,假设有两个集合 `set1` 和 `set2`,它们分别包含以下元素:
```java
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(2, 4, 6));
```
然后我们调用 `set1.retainAll(set2)`:
```java
set1.retainAll(set2);
```
此时,`set1` 中只会保留与 `set2` 相同的元素,即 `2` 和 `4`。所以,`set1` 现在的内容是 `[2, 4]`。
注意,`retainAll()` 方法会修改当前集合,所以如果你不希望修改原始集合,可以先对其进行复制。例如:
```java
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(2, 4, 6));
Set<Integer> result = new HashSet<>(set1);
result.retainAll(set2);
System.out.println(set1); // [1, 2, 3, 4, 5]
System.out.println(set2); // [2, 4, 6]
System.out.println(result); // [2, 4]
```
retainAll的使用
`retainAll()` 是 Java 中集合类(如 List、Set)的一个方法,用于保留集合中与指定集合相同的元素,同时移除其他元素。
下面是 `retainAll()` 方法的使用示例:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("apple");
list1.add("banana");
list1.add("orange");
List<String> list2 = new ArrayList<>();
list2.add("banana");
list2.add("pear");
list1.retainAll(list2);
System.out.println(list1); // 输出 [banana]
}
}
```
在上面的示例中,我们创建了两个 `List` 对象 `list1` 和 `list2`。然后,我们向 `list1` 添加了三个元素,并向 `list2` 添加了两个元素。
接下来,我们调用 `list1.retainAll(list2)` 方法,这会将 `list1` 中与 `list2` 具有相同元素的部分保留下来,而移除其他元素。在本例中,由于 `list1` 和 `list2` 都包含 "banana" 这个元素,因此最终 `list1` 中只保留了 "banana" 元素。
最后,我们打印输出 `list1`,结果为 `[banana]`。
需要注意的是,`retainAll()` 方法会修改原始集合,如果你不想修改原始集合,可以创建一个新的集合来保存结果。此外,`retainAll()` 方法会使用元素的 `equals()` 方法来进行比较,因此确保你的元素类正确实现了 `equals()` 方法。
希望这个例子能帮助你理解 `retainAll()` 方法的使用。如果有任何进一步的问题,请随时向我提问。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)