java的set集合和子类HashSet

-----------------------java的set集合和子类HashSet----------------

set特点:

 1.无序性

 2.不能重复

 3.允许有null但是只能有一个

 

 

--------------------hashSet------------------

此类实现Set接口,由哈希表(实际上是一个HashMap实列)支持。它不保证set的迭代顺序,特别是它不保证该顺序

恒久不变。此类允许使用null元素。

 

HashSet的唯一性:

    在HashSet做添加的时候会逐个来判断当前集合中的对象和要添加的对象的比较

       通过以下的条件判断两个对象是否相等

               l  e.hash == hash&&((k == e.hash) == key || key.equals(k))

               l  hash值必须相等并且两个对象的地址值相等或者equals返回ture

 

List集合是有序的,可以存储null和相同的元素。

一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2)的元素对 e1e2,并且最多包含一个 null 元素。

 

Set里面的方法绝大多数都是继承于collection,所以set基本学完。

Set的特点:

   元素不可重复性

   元素无序的(跟添加的顺序无关)

 

-------------- Set的重复性---------------

 

Set在添加元素的时候会拿这个元素和集合中的每一个元素做比较,如果重复了就不添加,

如果没有重复就添加。

 

判断两个对象是否相等必须重写equals和hashCde方法,

这两个方法都符合相等的条件,才认为是相等的。

例子:

/**

 * set特点:

 * 1.无序性

 * 2.不能重复

 * 3.允许有null但是只能有一个

 * @作者 李昆鹏

 *

 */

 

public class SetDemo {

 

   public static void main(String[] args) {

      //创建一个Set集合

      Set<String>set = new HashSet<String>();

      set.add("曹操");

      set.add("刘备");

      set.add("孙权");

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值