java 17-5 LinkedHashSet

  LinkedHashSet:底层数据结构由哈希表和链表组成。
     哈希表保证元素的唯一性。
     链表保证元素有素。(存储和取出是一致)

 1 import java.util.LinkedHashSet;
 2 public class LinkedHashSetDemo {
 3 public static void main(String[] args) {
 4 // 创建集合对象
 5 LinkedHashSet<String> hs = new LinkedHashSet<String>();
 6
 7 // 创建并添加元素
 8 hs.add("hello");
 9 hs.add("world");
10 hs.add("java");
11 hs.add("world");
12 hs.add("java");
13
14 // 遍历
15 for (String s : hs) {
16 System.out.println(s);
17 }
18 }
19 }
时间: 2024-10-20 21:58:00

java 17-5 LinkedHashSet的相关文章

Java HashSet和LinkedHashSet的用法

Java HashSet和LinkedHashSet的用法 类HashSet和LinkedHashSet都是接口Set的实现,两者都不能保存重复的数据.主要区别是HashSet不保证集合中元素的顺序,即不能保证迭代的顺序与插入的顺序一致. 而LinkedHashSet按照元素插入的顺序进行迭代,即迭代输出的顺序与插入的顺序保持一致. 以下是HastSet和LinkedHashSet的用法示例: [java] view plain copy import java.util.Collections

java 17 - 8 TressSet比较器排序元素

1 package zl_TreeSet; 2 3 import java.util.Comparator; 4 import java.util.TreeSet; 5 6 /* 7 用StreeSet集合存储自定义对象并遍历.这次用比较器排序 8 public TreeSet(Comparator comparator) 比较器排序 9 这种方法有两种做法: 10 1:创建一个把Comparator为接口的类, 11 2:如果一个方法的参数是接口,那么真正要的是接口的实现类的对象 12 而匿名

java 17 - 9 HashSet集合、TreeSet集合的练习

HashSet集合的练习 1 package zl_TreeSetTest; 2 /* 3 创建学生类 4 成员变量: 5 A:姓名 6 B:语文成绩 数学成绩 英语成绩 7 */ 8 public class Student { 9 private String name ; 10 private int chinese; 11 private int english; 12 private int math; 13 14 public Student() { 15 super(); 16 /

Java(17)异常

一.异常 1.1程序执行过程中出现的影响程序运行正常运行的现象.  1.2异常语法 try{ //代码块 }catch(异常类型 e){ }catch(异常类型 e){ }...{ }finally{ } 注意:try:表示可能出现异常的代码块 catch:抓取异常,并进行处理 可能抓取多个异常,异常范围要从小到大抓取 并且只会执行第一个匹配的异常类型 finally:最后的,不管是否出现异常,finally中的代码一直会执行,除非虚拟机(syatem.exit(1)这个情况外) 使用if结构:

Java集合之LinkedHashSet源码分析

1.简介 我们知道Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.根据源码实现中的注释我们可以知道LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现.此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表.此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序.使用示例如下: package com.test.collections; import java.util.Iterator;

java 17 -7 TreeSet元素排序规则的案例

TreeSet:能够对元素按照某种规则进行排序. 排序有两种方式 A:自然排序 B:比较器排序 TreeSet集合的特点:排序和唯一 通过观察TreeSet的add()方法,我们知道最终要看TreeMap的put()方法. 1 package zl_TreeSet; 2 3 import java.util.TreeSet; 4 public class TreeSetDemo { 5 6 public static void main(String[] args) { 7 //创建TreeSe

java 17 - 4 HashCode()保证元素唯一性的代码体现以及图解

当我们想要创建一个集合,该集合里面的元素都具有唯一性时.会遇到两种情况: A:元素为String类型,可以直接用Hashset<String>集合来创建 String类重写了hashCode()和equals()方法,所以,它就可以把内容相同的字符串去掉.只留下一个. B:当元素为自定义对象的时候,那么,就要在这个对象的类中重写hashCode()和equals()方法 下图是思路: 其实,扯了这么多,上面那些只要理解思路就行了...这玩意不用自己写 在类上面 Alt+Shift+s ,再点h

java 17 -1 用户登陆注册案例(集合版)

需求: 用户登录注册案例 按照如下操作,可以让我们更符合面向对象思想: A:这个案例有哪些类 B:每个类中又有哪些东西 C:类与类之间的关系 分析: A:这个案例有哪些类 用户类 测试类 B:每个类中又有哪些东西 用户类: 成员变量:用户名.密码 构造方法:无参构造 成员方法:getXxx().setXxx() 登陆,注册 但,如果用户类的内容过多的时候,维护起来比较麻烦. 所以,为了以后维护起来比较容易,我们需要更清晰的分类: 用户类可以再分为2个类: 用户基本描述类: 成员变量:用户名.密码

死磕 java集合之LinkedHashSet源码分析

问题 (1)LinkedHashSet的底层使用什么存储元素? (2)LinkedHashSet与HashSet有什么不同? (3)LinkedHashSet是有序的吗? (4)LinkedHashSet支持按元素访问顺序排序吗? 简介 上一节我们说HashSet中的元素是无序的,那么有没有什么办法保证Set中的元素是有序的呢? 答案是当然可以. 我们今天的主角LinkedHashSet就有这个功能,它是怎么实现有序的呢?让我们来一起学习吧. 源码分析 LinkedHashSet继承自HashS

java 17 - 6 TreeSet集合及其add()方法的源码解析

TreeSet:能够对元素按照某种规则进行排序. 排序有两种方式 A:自然排序 B:比较器排序 TreeSet集合的特点:排序和唯一 1 public class TreeSetDemo { 2 public static void main(String[] args) { 3 // 创建集合对象 4 // 自然顺序进行排序 5 TreeSet<Integer> ts = new TreeSet<Integer>(); 6 7 // 创建元素并添加 8 // 20,18,23,2