-
特点 :无序、无下标、元素不可重复
-
方法:全部继承自Collection中的方法
Set
package chapter03;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
/**
* 测试Set接口的使用*/
public class Demo01 {
public static void main(String[] args) {
//创建集合
Set<String> set=new Set<String>() {
@Override
public int size() {
return 0;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public boolean contains(Object o) {
return false;
}
@Override
public Iterator<String> iterator() {
return null;
}
@Override
public Object[] toArray() {
return new Object[0];
}
@Override
public <T> T[] toArray(T[] a) {
return null;
}
@Override
public boolean add(String s) {
return false;
}
@Override
public boolean remove(Object o) {
return false;
}
@Override
public boolean containsAll(Collection<?> c) {
return false;
}
@Override
public boolean addAll(Collection<? extends String> c) {
return false;
}
@Override
public boolean retainAll(Collection<?> c) {
return false;
}
@Override
public boolean removeAll(Collection<?> c) {
return false;
}
@Override
public void clear() {
}
}
}
}
Hash Set
-
基于Hash code实现元素不重复
-
当存入元素和哈希码相同时,会调用equals进行确认,如果结果为true,则拒绝后者存入
-
基于Hash Code计算元素存放位置
-
存储结构:哈希表(数组 +链表)
在使用hash Next遍历的时候出现bug
调试方法
添加了<String>中的内容,代码编写错误
/**
* 测试Set接口的使用
*@author 阿娆
*/
public class Demo01 {
public static void main(String[] args) {
//创建集合
Set<String> set = new HashSet<>();
//1.添加,根据添加的顺序是有序的
set.add("阿娆");
set.add("娟娟");
set.add("麦麦");
System.out.println("数据个数" + set.size());
System.out.println(set.toString());
//2.删除
// set.remove(2);
// set.remove("阿娆");
//3.遍历 1. 增强for
//3.2遍历
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
//4.查找
System.out.println(set.contains("麦麦"));
System.out.println(set.isEmpty());
}
}