一、Set接口的定义
Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素
- Set接口的主要方法与Collection是一致的
- Set接口的实例无法像List接口那样进行双向输出.不存在get方法使用Iterator接口来遍历集合
2个常用方法:hasNext方法表示判断是否还有元素可以迭代
next()方法:返回迭代的下一个元素
- Set接口的常用子类
散列存放:HashSet
有序存放:TreeSet
二、使用SetHashSet
package com.pb.demo2; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import com.pb.demo2.Person; public class PersonSetTest { public static void main(String[] args) { /* * 创建多个Person对象并赋值 */ Person p1 = new Person("张三",21); Person p2 = new Person("李四",22); Person p3 = new Person("王五",23); Person p4 = new Person("赵六",24); Person p5 = new Person("钱七",25); //创建Set接口对象HashSet Set<Person>pset=new HashSet<Person>(); //通过add方法铺实现添加 pset.add(p1); pset.add(p2); pset.add(p3); pset.add(p4); pset.add(p5); //获取长度 System.out.println("长度为: "+pset.size()); System.out.println("===========使用Iterator来遍历==============="); //因为没有get方法,使用Iterator来遍历 Iterator<Person> piterator=pset.iterator(); //使用next和hasNext方法来遍历 while(piterator.hasNext()){ Person p = piterator.next(); System.out.println("姓名: "+p.getName()); System.out.println("年龄: "+p.getAge()); } System.out.println("=========使用foreach来遍历============="); //使用foreach来遍历 for (Person p : pset) { System.out.println("姓名: "+p.getName()); System.out.println("年龄: "+p.getAge()); } } }
三、验证散列的存放:HashSet
package com.pb.demo2; import java.util.HashSet; import java.util.Set; public class HashSetTest { public static void main(String[] args) { Set<String> allSet = new HashSet<String>(); allSet.add("A") ; // 增加元素 allSet.add("B") ; // 增加元素 allSet.add("C") ; // 增加元素 allSet.add("A") ; // 重复元素,不能加入 allSet.add("C") ; // 重复元素,不能加入 allSet.add("D") ; // 增加元素 allSet.add("E") ; // 增加元素 System.out.println("长度:"+allSet.size()); System.out.println(allSet.toString()) ; // 输出集合对象,调用toString() } }
四、验证有序的存放:TreeSet
package com.pb.demo2; import java.util.HashSet; import java.util.Set; public class HashSetTest { public static void main(String[] args) { Set<String> allSet = new HashSet<String>(); allSet.add("A") ; // 增加元素 allSet.add("B") ; // 增加元素 allSet.add("C") ; // 增加元素 allSet.add("A") ; // 重复元素,不能加入 allSet.add("C") ; // 重复元素,不能加入 allSet.add("D") ; // 增加元素 allSet.add("E") ; // 增加元素 System.out.println("长度:"+allSet.size()); System.out.println(allSet.toString()) ; // 输出集合对象,调用toString() } }