set集合——HashSet与TreeSet

Set集合

继承于Collection接口,所以set接口拥有所有Collection接口提供的常用方法,如修删改查,不允许包含相同的元素,

set的两个实现类,HashSet和TreeSet。

——HashSet:实现的本质就是HashMap,HashSet里面的元素是无序的。

——TreeSet:里面是元素是有序的。

 

 

HashSet实现Set接口,那么它也是一个不包含重复元素的无序集合。

允许使用null,但是有且仅有一个元素为null。

如果要向HashSet集合中存入元素,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据 hashCode值来决定该对象在HashSet中存储位置。如果要把一个对象放入HashSet中,重写该对象对应类的equals方法,也应该重写其hashCode()方法。

简单的说在HashSet中,只有equals()方法返回TRUE时,hashcode值也相同,我们才定义成元素相等。

package com.newer.sf.集合框架体系;

import java.util.HashSet;
import java.util.Iterator;

public class HashSetTest {
 public static void main (String[] args){
  HashSet<String> set= new HashSet<String>();
  
 
  set.add("AA");
  set.add("DD");
  set.add("AA");//重复元素,不进行存储
  set.add("BB");
  set.add("CC");
  set.add("BB");//重复元素,不进行存储
  
  //方式一:通过迭代器
  Iterator<String> iter = set.iterator();
    while(iter.hasNext()){
     String s = iter.next();
     System.out.println(s);
    }
    System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^");
  //方式二  : 增强for
    for(String s :set){
     System.out.println(s);
    }
    
    
 }

}
 

 
 

TreeSet类跟HashSet一样,不允许重复对象,但是是有序的,元素按照自然顺序或者比较器的顺序排序。

TreeSet判断两个对象不相等的方式是两个对象通过equals方法返回false,或者通过CompareTo方法比较 没有返回0

package com.newer.sf.集合框架体系;
import java.util.Iterator;
import java.util.TreeSet;

public class TreeSetDemo {

 public static void main(String[] args) {

  TreeSet<String> set = new TreeSet<String>();

  set.add("北京");
  set.add("南京");
  set.add("南昌");
  set.add("天津");

  for (String s : set) {
   System.out.println(s);
  }
 }

}

  

注意:TreeSet是自动进行排序的,不可以存放null值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值