Fork me on GitHub

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

    }

}
posted @ 2015-02-25 23:16  森林森  阅读(620)  评论(0编辑  收藏  举报