Set
Set集合接口也继承了Collection集合接口,此集合的元素是无序的,且不允重复。元素默认为正序排序
API方法实例
size
@Test
public void size() {
//size: 返回集合数据的长度
Set<Object> set = new HashSet<>();
int size = set.size();
//没有添加数据,打印为0
System.out.println(size);
//打印集合为空
System.out.println(set);
}
isEmpty
@Test
public void isEmpty() {
//isEmpty:判断集合是否为空,空则返回true,否则false
Set<Object> set = new HashSet<>();
boolean empty = set.isEmpty();
System.out.println(empty);
}
contains
@Test
public void contains() {
//contains:判断集合是否存在指定的元素
Set<Object> set = new HashSet<>();
//不存在这个指定的字符,返回为false
boolean contains = set.contains("contains");
System.out.println(contains);
}
iterator
@Test
public void iterator() {
//iterator:返回一个迭代器接口,用于遍历集合
Set<Object> set = new HashSet<>();
set.add("iterator");
Iterator<Object> iterator = set.iterator();
//使用迭代器接口方法遍历集合数据
iterator.forEachRemaining(System.out::print);
}
toArray(无参)
@Test
public void toArray() {
//toArray无参: 将集合转换为数组
Set<Object> set = new HashSet<>();
set.add("toArray");
Object[] toArray = set.toArray();
//使用增强for循环遍历集合
for (Object o : toArray) {
System.out.println(o);
}
}
toArray有参
@Test
public void toArrayArgs() {
//toArray有参: 将集合转换为数组,并用参数作为匹配值
Set<Object> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
//利用指定参数匹配集合数据,如果超出集合的长度则超出的值打印为null
Object[] toArray = set.toArray(new Object[]{1,2,3,4});
for (Object o : toArray) {
System.out.println(o);
}
}
add
@Test
public void add() {
//add: 往集合里添加一条数据,不可重复
Set<Object> set = new HashSet<>();
set.add(2);
set.add(1);
//两个重复的值,只会打印一次
System.out.println(set);
}
remove
@Test
public void remove() {
//remove: 移除集合指定元素
Set<Object> set = new HashSet<>();
set.add("remove");
//移除集合中添加的字符
boolean remove = set.remove("remove");
System.out.println(remove);
}
containsAll
@Test
public void containsAll() {
//containsAll: 根据Collection集合比较set判断内容
Set<Object> set = new HashSet<>();
set.add("containsAll");
Collection<Object> collection = new HashSet<>();
//添加匹配set集合的值
collection.add("containsAll");
//Collection里的值和set集合的值一直,所以判断为true
System.out.println(set.containsAll(collection));
}
addAll
@Test
public void addAll() {
//addAll: 根据Collection集合批量添加数据
Set<Object> set = new HashSet<>();
Collection<Object> collection = new HashSet<>();
collection.add("addAll1");
collection.add("addAll2");
//返回为true
System.out.println(set.addAll(collection));
}
retainAll
@Test
public void retainAll() {
//retainAll: 根据Collection集合保留指定的值
Set<Object> set = new HashSet<>();
set.add("retainAll");
set.add("retainAll method");
Collection<Object> collection = new HashSet<>();
//添加要保留的值
collection.add("retainAll");
System.out.println(set.retainAll(collection));
//此时只打印0号索引值,因为被指定保留
System.out.println(set);
}
removeAll
@Test
public void removeAll() {
//removeAll: 根据Collection集合批量移除
Set<Object> set = new HashSet<>();
//添加set集合的值
set.add("remove");
set.add("removeAll");
Collection<Object> collection = new HashSet<>();
//添加要移除的值
collection.add("remove");
collection.add("removeAll");
System.out.println(set.removeAll(collection));
}
clear
@Test
public void clear() {
//clear: 移除集合所有元素
Set<Object> set = new HashSet<>();
set.add("clear");
set.clear();
//此时打印集合为空
System.out.println("set = " + set);
}
equals
@Test
public void equals() {
//equals: 比较集合对象是否相等
Set<Object> set1 = new HashSet<>();
Set<Object> set2 = new HashSet<>();
//判断两个set集合的对象值是否相等,打印为true
System.out.println("set1.equals(set2) = " + set1.equals(set2));
}
HashCode
@Test
public void HashCode() {
//hashCode: 返回哈希值
Set<Object> set = new HashSet<>();
set.add("hashCode");
//随机返回一个整数值
System.out.println("set.hashCode() = " + set.hashCode());
}
spliterator
@Test
public void spliterator() {
Set<Object> set = new HashSet<>();
set.add("spliterator");
Spliterator<Object> spliterator = set.spliterator();
//使用Spliterator接口方法遍历集合数据
spliterator.forEachRemaining(System.out :: println);
}