Java中set集合的使用

(一).Set集合

  • 1.添加到容器中的元素不能重复,就算重复只按一个元素算!
  • 2.Set集合继承Collection接口,方法全部来自Collection接口,自身没有定义其他方法。
  • 3.Set接口主要两个实现类为HashSet、TreeSet。
  • 4.Set集合中的元素不按特定顺序排序。因此我们无法向list一样根据索引获取数据。

(二).HashSet集合的使用
- 1.存取HashSet集合中的元素,是根据哈希码来存取。HashSet根据哈希码来确定元素在集合中存储的位置(内存地址)。
- 2.HashSet不能保证迭代顺序,且允许元素为null
- 3.比较两个HashSet集合是否相同,先比较hasCode()返回的值是否相同,在使用equals()方法比较两个HashSet存储位置是否相同。如果满足以上两个条件,则HashSet集合相同。
- 4.hasCode()和equals()方法必须一起使用,以保证判断HashSet一致性。
- 5.参考文档:http://www.java2s.com/Tutorials/Java/java.util/HashSet/index.htm

(三)代码演示

1.添加多个相同元素,但容器中只有一个

package com.Collection;
import java.util.HashSet;
public class TestHasSet {

    public static void main(String[] args) {
         HashSet<String> object=new HashSet();
         object.add("中国");
         object.add("中国");
         object.add("中国");
         object.add("中国");

         System.out.println("object"+object);

    }

}

2.清空HashSet中的所有元素

package com.Collection;
import java.util.HashSet;
public class TestHasSet {

    public static void main(String[] args) {
         HashSet<String> object=new HashSet();
         object.add("中国");
         object.add("中国");
         object.add("中国");
         object.add("中国");

         System.out.println("object"+object);

         object.clear();
         System.out.println("清空object后"+object);

    }

}

3.删除指定名称的元素

package com.Collection;
import java.util.HashSet;
public class TestHasSet {

    public static void main(String[] args) {
         HashSet<String> object=new HashSet();
         object.add("中国");
         object.add("美国");
         object.add("日本");
         object.add("俄罗斯");

         System.out.println("object"+object);

         object.remove("中国");
         System.out.println("清空object后"+object);

    }

}

4.使用迭代器遍历HashSet中的所有元素

package com.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class TestHasSet {

    public static void main(String[] args) {
         HashSet<String> object=new HashSet();
         object.add("中国");
         object.add("美国");
         object.add("日本");
         object.add("俄罗斯");

         Iterator iterator = object.iterator(); 
           while (iterator.hasNext()){
                 System.out.println("遍历HashSet中的所有元素: "+iterator.next());  
              }


    }

}

5.获取HashSet集合中的元素个数

package com.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class TestHasSet {

    public static void main(String[] args) {
         HashSet<String> object=new HashSet();
         object.add("中国");
         object.add("美国");
         object.add("日本");
         object.add("俄罗斯");

         System.out.println("HasHSet总元素为"+object.size());

    }

}

(四) TreeSet集合的使用

  • 1.TreeSet接口实现Set和SortedSet接口
  • 2.TreeSet集合中的元素是有顺序的,如果要排序直接使用TreeSet
  • 3.TreeSet的使用和其他集合差不多,

代码演示
1.排序

package com.Collection;
import java.util.TreeSet;
public class TestTreeSet {

    public static void main(String[] args) {

        TreeSet<String> ts=new TreeSet();
        ts.add("张三");
        ts.add("李四");
        ts.add("王五");
        ts.add("宋小宝");
        ts.add("赵本山");
        System.out.println("树集合"+ts);
        System.out.println("树集合的第一个元素"+ts.first());
        System.out.println("树集合最后一个 元素"+ts.last());
        System.out.println("headSet(李四)"+ts.headSet("李四"));
        System.out.println("tailSet(李四)"+ts.tailSet("李四"));
        System.out.println("ceiling(四)"+ts.ceiling("四"));


    }

}

2.遍历TreeSet集合中的元素

package com.Collection;
import java.util.Iterator;
import java.util.TreeSet;
public class TestTreeSet {

    public static void main(String[] args) {

        TreeSet<String> ts=new TreeSet();
        ts.add("张三");
        ts.add("李四");
        ts.add("王五");
        ts.add("宋小宝");
        ts.add("赵本山");


          Iterator<String> iterator = ts.iterator();

          while (iterator.hasNext()){
             System.out.println(iterator.next());
          }

    }

}

遍历List和set集合都可以使用迭代器遍历

新的知识以后再接着写……………………………………………………………………………………………

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值