【java笔记】Set接口 (HashSet集合,LinkedSet集合)
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集合)相关推荐
- 【java笔记】of方法 JDK9对集合添加方法的优化
JDK9的新特性: List接口,Set接口,Map接口:增加了一个静态的方法of,可以给集合一次性添加多个元素 使用前提:当集合中储存的元素的个数已经确定,不在改变时使用 注意: 1.of方法只适用 ...
- 【java笔记】接口的定义,接口的使用
java不支持多继承性,即一个类只能有一个父类.(单继承性) 为了解决单继承的缺点,java使用了接口 接口是一种引用数据类型,最重要的内容是抽象方法 (public) interface 接口名称{ ...
- Java 笔记-抽象类,接口
一.什么是抽象类 简单理解的来说就是不够具体的类,具体的反义词-抽象. 比如说一个图形,这就不够具体,一个图形可以具体的细分为三角形,圆形,长方形等等,三角形又可以更加具体,等腰三角形,等边三角形等等 ...
- java util包排序_实现java.util.Comparator接口,对对象集合进行多属性组合排序
Commons - BeanUtils 提供了很多功能,其中一个很有用的是对对象集合进行排序,如Collections.sort(peoples, new BeanComparator("a ...
- 【小白学Java】D19》》》Collection集合
集合与数组的区别: 集合长度是可变的,数组的长度是固定的 数组中存储的是同一类型的元素,可以存储基本数据类型值,集合存储的都是对象,而且对象的类型可以不一致,在开发中一般当对象多的时期使用集合进行存储 ...
- Java笔记整理五(Iterator接口,泛型,常见数据结构(栈,队列,数组,链表,红黑树,集合),jdk新特性,异常,多线程,Lambda表达式)
Java笔记整理五 1.1Iterator接口 Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象 ...
- 【Java笔记】集合(Collection接口)的使用
面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.使用 Array 存储对象方面具有一些弊端,而 Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中 ...
- java的set接口_Java集合-Set接口
importorg.junit.Test;import java.util.*;/*** * Collection接口:单列集合,用来存储一个一个的对象 * (不常用)子接口Set:存储无序的.不可重 ...
- java list api_Java核心API -- 6(Collection集合List、Set、ArrayList、HashSet)
1. Collection集合框架 Java.util.Collection接口 |--List子接口 |--ArrayList实现类 |--LinkedList实现类 |--Vector实现类 |- ...
最新文章
- 这才是微服务拆分的正确姿势,值得学习!
- INQ渐进量化方法详解
- NetworkX玩一下 --update@2017.06.28
- 机器对工作、生产力及全球经济的影响
- Java中四则运算的那些坑
- 今天动手熟悉了一下css和php
- Python+socket完美实现TCP长连接保持存活
- java class object_[java]Class类和Object类的关系
- Computer Science Theory for the Information Age-4: 一些机器学习算法的简介
- 如何编写一个抢购bot_如何编写一个SkyWalking插件
- Hive数据倾斜及处理
- 拥抱ARM妹子 序章!ARM妹子~~ 哥我来啦!
- 分享一款思维导图工具-幕布(附在线工具合集、Android进阶知识体系)
- 滑铁卢大学容易转计算机专业吗,滑铁卢大学计算机科学专业好吗
- SQL 遇到以零作除数错误——用NULLIF()函数处理为0的分母
- 开源)嗨,Java,你可以生成金山词霸的二维码分享海报吗?
- 电路原理笔记整理_【盛世清北】2021清华大学827电路原理考研笔记-清华考研辅导班...
- python机器学习案例-梯度提升模型搭建及评估(完整代码+实现效果)
- win10照片应用打不开的解决方法
- 小米文件管理连接服务器,小米文件管理器中的远程管理无法连接解决方法