Set接口
- Collection的子接口
- 用来包含一组 无序无重复 的对象
- 无序 — 是指元素存入顺序和集合内存储的顺序不同;
- 无重复 — 两个对象e1和e2,如果e1.equals(e2)返回true,则认为e1和e2重复,在set中只保留一个。
package JavaSE.集合.Set接口; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class TestSet { /** * HashSet */ public static void main(String[] args) { //类的构造 Set set = new HashSet(); //面向接口编程 //add set.add(50); set.add(60); //int Integer set.add(200); set.add(new Integer(200)); //size() 获取集合长度 System.out.println("set.size()\t" + set.size()); //使用另外一个集合构造set对象 Set set2 = new HashSet(); set2.addAll(set); System.out.println("set2.size()\t" + set2.size()); //isEmpty 是否为空 System.out.println("set2.isEmpty()\t" + set2.isEmpty()); //迭代器 遍历Set Iterator it = set2.iterator(); while (it.hasNext()) { Object item = it.next(); System.out.println("item\t" + item); } //移除元素, 通过equals 和hashcode 判断是否存在元素 set.remove(50); System.out.println("remove.size()\t" + set.size()); Set set3 = new HashSet(); set3.add("abc"); set3.add("def"); set3.add("ghi"); Set set4 = new HashSet(); set4.add("abc"); set4.add("def"); System.out.println("set3.size\t" + set3.size()); set3.retainAll(set4); System.out.println("retainAll.size\t" + set3.size()); for (Object o : set3) { System.out.println("set3-item\t" + o); } set3.clear();//清空 System.out.println(set3.size()); //0 } }