主要是介绍Set(集合)
1 package LS_13; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 public class TestSet01 { 7 //set接口的特点 8 //扩展Collection接口 9 //不允许排序 10 //没有排序 11 //允许一个null值 12 //对add(),元素的equals()和hashcode()方法的添加 13 //HashSet是其实现类 14 public static void main(String[] args) { 15 Set set = new HashSet(); 16 System.out.println(set);//对toString重写 17 18 //元素的添加(添加什么都可以) 19 set.add(1); 20 set.add(false); 21 set.add(false);//不允许重复,所以只有一个false 22 set.add(new Object()); 23 System.out.println(set); 24 //批量添加元素 25 Set temp = new HashSet(); 26 temp.add("1"); 27 temp.add("2"); 28 temp.add("3"); 29 set.addAll(temp); 30 System.out.println(set); 31 32 //addAll()也有返回值,但是当所以都不成功,才会false,就是说添加的都是重复的 33 boolean bp = set.add("小明");//返回是否添加成功 34 System.out.println(bp); 35 System.out.println(set); 36 37 //单个移除,也有返回值 38 boolean s = set.remove("小明"); 39 System.out.println(s); 40 System.out.println(set); 41 42 //批量移除 43 Set set1 = new HashSet(); 44 set1.add(1); 45 set1.add("false"); 46 bp = set.removeAll(set1); 47 System.out.println(bp);//移除一个就是成功的 48 System.out.println(set); 49 50 //获取长度 51 System.out.println("set.size()"+set.size()); 52 //判空 53 System.out.println("set.isEmpty"+set.isEmpty()); 54 55 //清空:是清空集合的内容,集合对象是存在的 56 set1.clear(); 57 System.out.println(set1); 58 59 //包含 60 System.out.println(set); 61 System.out.println(set.contains(2)); 62 63 64 } 65 }
1 package LS_13; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 import java.util.Set; 6 7 public class Student { 8 int id; 9 String name; 10 public Student(int id , String name){ 11 this.id = id; 12 this.name = name; 13 } 14 15 @Override 16 public int hashCode() { 17 System.out.println("调用hashCode"); 18 return this.id;//重写方法 19 } 20 21 @Override 22 public boolean equals(Object obj) { 23 System.out.println("调用equals()"); 24 if(this == obj) { 25 return true; 26 } 27 if(obj instanceof Student){ 28 Student student = (Student)obj; 29 return this.id == student.id; 30 } 31 return false; 32 } 33 34 public static void main(String[] args) { 35 Student s1 = new Student(1,"小明"); 36 Student s2 = new Student(1,"小红"); 37 38 Set set = new HashSet(); 39 set.add(s1); 40 set.add(s2); 41 //哈希值判断、equals判断 42 System.out.println(s1.hashCode()); 43 System.out.println(s2.hashCode()); 44 System.out.println(set); 45 46 //迭代器 47 Iterator it = set.iterator(); 48 while (it.hasNext()){ 49 System.out.println(it.next()); 50 } 51 } 52 53 }