Java从零开始学二十二(集合Set接口)
一、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()
}
}


浙公网安备 33010602011771号