疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

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()
 
    }
 
}