Set:不包含重复元素的collection,没有带索引的方法,不能使用for循环变量

实现类:

HashSet

哈希表结构(查询速度快),是一个无序的集合

Set<Integer>set=new HashSet<>();
set.add(1);
set.add(3);
set.add(2);

使用迭代器遍历

Iterator<Integer>it=set.iterator();
while(it.hasNext()){Integer n=it.next();sout(n);
}

使用增强for变量

for(Integer i:set){sout(i);
}

哈希值:是一个十进制的整数,由系统随机给出(是对象的逻辑地址,不是实际储存的物理地址)

Object.hashcode():返回对象的哈希码

String类的哈希值,重写了hashcode方法,如果值相同,那么哈希值相同

哈希表结构:

Set集合不能允许重复元素的原理:

HashSet储存自定义类型的元素

给HashSet存放自定义类型元素时,需要重写对象的hashCode和equals方法,才能保证HashSet集合中的对象唯一

public class Stu {private String name;private int age;@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Stu stu = (Stu) o;return age == stu.age && Objects.equals(name, stu.name);}@Overridepublic int hashCode() {return Objects.hash(name, age);}
}

LinkedHashSet

java.util.LinkedHashSet集合 extends HashSet集合

LinkedHashSet集合特点:

底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表(记录元素的储存顺序),保证元素有序

LinkedHashSet<String>linked =new LinkedHashSet<>();
linked.add("www");
linked.add("abc");
linked.add("abc");
linked.add("itcast");
linked:www,abc,itcast(有序)

【java笔记】Set接口 (HashSet集合,LinkedSet集合)相关推荐

  1. 【java笔记】of方法 JDK9对集合添加方法的优化

    JDK9的新特性: List接口,Set接口,Map接口:增加了一个静态的方法of,可以给集合一次性添加多个元素 使用前提:当集合中储存的元素的个数已经确定,不在改变时使用 注意: 1.of方法只适用 ...

  2. 【java笔记】接口的定义,接口的使用

    java不支持多继承性,即一个类只能有一个父类.(单继承性) 为了解决单继承的缺点,java使用了接口 接口是一种引用数据类型,最重要的内容是抽象方法 (public) interface 接口名称{ ...

  3. Java 笔记-抽象类,接口

    一.什么是抽象类 简单理解的来说就是不够具体的类,具体的反义词-抽象. 比如说一个图形,这就不够具体,一个图形可以具体的细分为三角形,圆形,长方形等等,三角形又可以更加具体,等腰三角形,等边三角形等等 ...

  4. java util包排序_实现java.util.Comparator接口,对对象集合进行多属性组合排序

    Commons - BeanUtils 提供了很多功能,其中一个很有用的是对对象集合进行排序,如Collections.sort(peoples, new BeanComparator("a ...

  5. 【小白学Java】D19》》》Collection集合

    集合与数组的区别: 集合长度是可变的,数组的长度是固定的 数组中存储的是同一类型的元素,可以存储基本数据类型值,集合存储的都是对象,而且对象的类型可以不一致,在开发中一般当对象多的时期使用集合进行存储 ...

  6. Java笔记整理五(Iterator接口,泛型,常见数据结构(栈,队列,数组,链表,红黑树,集合),jdk新特性,异常,多线程,Lambda表达式)

    Java笔记整理五 1.1Iterator接口 Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象 ...

  7. 【Java笔记】集合(Collection接口)的使用

    面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.使用 Array 存储对象方面具有一些弊端,而 Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中 ...

  8. java的set接口_Java集合-Set接口

    importorg.junit.Test;import java.util.*;/*** * Collection接口:单列集合,用来存储一个一个的对象 * (不常用)子接口Set:存储无序的.不可重 ...

  9. java list api_Java核心API -- 6(Collection集合List、Set、ArrayList、HashSet)

    1. Collection集合框架 Java.util.Collection接口 |--List子接口 |--ArrayList实现类 |--LinkedList实现类 |--Vector实现类 |- ...

最新文章

  1. 这才是微服务拆分的正确姿势,值得学习!
  2. INQ渐进量化方法详解
  3. NetworkX玩一下 --update@2017.06.28
  4. 机器对工作、生产力及全球经济的影响
  5. Java中四则运算的那些坑
  6. 今天动手熟悉了一下css和php
  7. Python+socket完美实现TCP长连接保持存活
  8. java class object_[java]Class类和Object类的关系
  9. Computer Science Theory for the Information Age-4: 一些机器学习算法的简介
  10. 如何编写一个抢购bot_如何编写一个SkyWalking插件
  11. Hive数据倾斜及处理
  12. 拥抱ARM妹子 序章!ARM妹子~~ 哥我来啦!
  13. 分享一款思维导图工具-幕布(附在线工具合集、Android进阶知识体系)
  14. 滑铁卢大学容易转计算机专业吗,滑铁卢大学计算机科学专业好吗
  15. SQL 遇到以零作除数错误——用NULLIF()函数处理为0的分母
  16. 开源)嗨,Java,你可以生成金山词霸的二维码分享海报吗?
  17. 电路原理笔记整理_【盛世清北】2021清华大学827电路原理考研笔记-清华考研辅导班...
  18. python机器学习案例-梯度提升模型搭建及评估(完整代码+实现效果)
  19. win10照片应用打不开的解决方法
  20. 小米文件管理连接服务器,小米文件管理器中的远程管理无法连接解决方法

热门文章

  1. 【转】关于输出用%lf和%f的问题
  2. informix利用dbaccess倒出数据
  3. Bailian3703 寻找平面上的极大点【最值】
  4. NUC1158 Lake Counting【DFS】
  5. 矩阵(二维数组)的性质在算法求解中的应用
  6. Linux sudo一些命令出现 command not found 的原因
  7. 向上取整和向下取整(ceil、round)
  8. LaTeX 的使用 —— 参考文献
  9. Java 线程——Timer TimerTask
  10. Beta函数与Gamma函数及其与Beta分布的关系