Java中的TreeSet retainAll()方法示例
在Java中,TreeSet
是一种基于红黑树(Red-Black tree)实现的有序集合。它提供了许多有用的函数来操作集合元素,其中之一就是retainAll()
方法。这个方法用来取两个集合的交集,即保留两个集合中共同存在的元素,并删除其他元素。下面我们将通过示例代码来详细了解TreeSet
的retainAll()
方法。
retainAll()方法
retainAll()
方法的定义如下:
public boolean retainAll(Collection<?> c)
该方法的参数是另一个集合c
,它会将调用方法的集合和c
集合的交集保存在调用方法的集合中,并返回一个布尔值表示是否修改了调用方法的集合。
例如,如果调用一个名为treeSet1
的TreeSet
对象的retainAll()
方法,将treeSet2
作为参数传递,那么treeSet1
中仅包含与treeSet2
集合中相同的元素。若返回值为true
则表示treeSet1
被修改,否则未修改。
示例代码
下面我们将通过示例代码来详细了解TreeSet
的retainAll()
方法。
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
// 创建第一个TreeSet
TreeSet<Integer> treeSet1 = new TreeSet<Integer>();
treeSet1.add(1);
treeSet1.add(2);
treeSet1.add(3);
treeSet1.add(4);
// 创建第二个TreeSet
TreeSet<Integer> treeSet2 = new TreeSet<Integer>();
treeSet2.add(3);
treeSet2.add(4);
treeSet2.add(5);
treeSet2.add(6);
// 调用retainAll()方法,获取两个TreeSet的交集,并修改treeSet1
boolean result = treeSet1.retainAll(treeSet2);
// 输出结果
System.out.println("是否修改treeSet1:" + result);
System.out.println("treeSet1:" + treeSet1.toString());
System.out.println("treeSet2:" + treeSet2.toString());
}
}
上述代码中,我们首先创建了两个TreeSet
对象treeSet1
和treeSet2
,并将不同的元素添加到它们中间。 然后我们调用了treeSet1
的retainAll()
方法,并传递了treeSet2
作为参数。
执行完毕后,我们输出了treeSet1
、treeSet2
和方法返回的布尔结果。
程序的输出结果如下所示:
是否修改treeSet1:true
treeSet1:[3, 4]
treeSet2:[3, 4, 5, 6]
由于retainAll()
方法在treeSet1
中保存了和treeSet2
相同的元素,因此treeSet1
在程序中被修改,返回值为true
。而且两个集合的交集是{3, 4}
,因此输出结果为:
treeSet1:[3, 4]
treeSet2:[3, 4, 5, 6]
总结
在本篇文章中,我们详细介绍了TreeSet
的retainAll()
方法,并通过示例代码演示了该方法的使用方式。retainAll()
方法可以用于获取两个集合的交集,可以在TreeSet
中删除一些不需要的元素。我们希望通过本文的解释和示例代码,您已经掌握了使用TreeSet retainAll()
方法来操作有序集合的技巧。