专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java基础学习:Collection中set集合方法

Java基础学习:Collection中set集合方法

更新时间:2020-04-30 14:25:31 来源:动力节点 浏览2360次

    概述

    Collection接口是存放元素的集合,由Collection接口派生的两个接口,list负责放重复的元素,而set则负责存放不重复的元素。

    那么在存放的时候,set集合怎么判断元素是否都是重复的呢?

    在Java中,用到了equals方法。

    自反性:对于任何非空引用值x,x.equals(x)都应返回true。

    对称性:对于任何非空引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y)才应返回true。

    传递性:对于任何非空引用值x、y和z,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals

    Set集合又是怎么取出元素?

    我们都知道,在Java中只要是读取多个数据,都需要用到迭代器,增强for(也就是循环)

    例如:

    迭代遍历

    Setset=newHashSet();

    Iteratorit=set.iterator();

    while(it.hasNext()){

    Stringstr=it.next();

    System.out.println(str);

    }

    for循环遍历

    for(Stringstr:set)

    {

    System.out.println(str);

    }

    Set中的HashSet

    HashSet(哈希表)

    此类实现了Set接口,由哈希表(实际是HashMap实例)支持。它不保证set的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用null元素。

    特点:无序集合,存储和取出的顺序不同,没有索引,不存储重复元素。代码的编写和ArrayList完全一致。

    HashSet特点:

    •底层数据结构:哈希表(链表和数组的结合体);

    •存储取出都比较快;

    •线程不安全,运行速度快;

    对象的哈希值

    •如果没有重写父类,每次运行的结果都是不同的整数;

    •如果子类重写父类的方法,哈希值,自定义;

    •存储到HashSet的依据;

    字符串的哈希值

    String类继承Object,重写了父类的方法hashCode

    哈希表的存储过程

    publicstaticvoidmain(String[]args)

    {

    HashSetset=newHashSet();

    set.add(newString("abc"));

    set.add(newString("abc"));

    set.add(newString("abc"));

    set.add(newString("bbc"));

    set.add(newString("bbc"));

    System.out.println(set);

    }

    而LinkedHashSet集合,他是基于链表的哈希表实现,继承自HashSet滴

Java基础学习:Collection中set集合方法

 以上就是动力节点java培训机构的小编针对“Java基础学习:Collection中set集合方法”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>