如下:

package 集合类.Set类;  

import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
/**
* LinkedHashSet与HashSet的区别就是数据严格按照插入的顺序存放。
* 删除之后会去掉那个位置,新增的数据将在集合的末尾。
* HashSet 内部使用HashMap实现<br>
* 而LinkedHashSet内部使用LinkedHashMap实现。
*/
public class LinkedHashSet类 {
public static void main(String[] args) {
test(new HashSet<Integer>());
test(new LinkedHashSet<Integer>());
} public static void test(Set<Integer> set) {
System.out.println(set.getClass().getName());
// 增加10个数据
for (int i = 100; i <= 110; i++) {
set.add(i);
}
// 看看里面数据的情况
showSet(set); // 删除一个数据
set.remove(101);
// 看看删除后的情况
showSet(set); // 增加三个数据,看结果
set.add(98);
set.add(101);
set.add(118);
showSet(set);
} /**
* 显示Set里面的数据。
*
* @param set
*/
private static void showSet(Set<Integer> set) {
System.out.println(Arrays.toString(set.toArray(new Integer[0])));
}
}

结果如下

java.util.HashSet
[102, 103, 100, 101, 110, 108, 109, 106, 107, 104, 105]
[102, 103, 100, 110, 108, 109, 106, 107, 104, 105]
[102, 103, 100, 101, 98, 110, 108, 109, 106, 107, 104, 105, 118]
java.util.LinkedHashSet
[100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110]
[100, 102, 103, 104, 105, 106, 107, 108, 109, 110]
[100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 98, 101, 118]

linkedHashset有严格的顺序,而hash的顺序为根据hashcode排列的

Java-LinkedHashSet的更多相关文章

  1. LinkedHashSet -有序,不重合集合,但仍不可索引,结合for循环取元素,数据多可能效率低

    package cn.learn.collection.Set; import java.util.HashSet; import java.util.Iterator; import java.ut ...

  2. Java(30)集合五Set

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228440.html 博客主页:https://www.cnblogs.com/testero ...

  3. HowToDoInJava Java 教程·翻译完成

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 核心 Java 教程 什 ...

  4. Programiz 中文系列教程·翻译完成

    原文:Programiz 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 Programiz C ...

  5. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  6. Java集合框架源码剖析:LinkedHashSet 和 LinkedHashMap

    Java LinkedHashMap和HashMap有什么区别和联系?为什么LinkedHashMap会有着更快的迭代速度?LinkedHashSet跟LinkedHashMap有着怎样的内在联系?本 ...

  7. Java源码初学_HashSet&LinkedHashSet

    一.概述 HashSet是建立在HashMap的基础上的,其内部存在指向一个HashMap对象的引用,操作HashSet实际上就是操作HashMap,而HashMap中所有键的值都指向一个叫做Dumm ...

  8. Java API —— Set接口 & HashSet类 & LinkedHashSet类

    1.Set接口     1)Set接口概述         一个不包含重复元素的 collection,无序(存储顺序和取出顺序不一致),唯一.  (List有序,即存储顺序和取出顺序一致,可重复) ...

  9. Java 集合框架 LinkedHashSet 和 LinkedHashMap 源码剖析

    总体介绍 如果你已看过前面关于HashSet和HashMap,以及TreeSet和TreeMap的讲解,一定能够想到本文将要讲解的LinkedHashSet和LinkedHashMap其实也是一回事. ...

  10. Java基础知识强化之集合框架笔记42:Set集合之LinkedHashSet的概述和使用

    1. LinkedHashSet类的概述: • 元素有序唯一 • 由链表保证元素有序 • 由哈希表保证元素唯一 2. 代码示例: package cn.itcast_04; import java.u ...

随机推荐

  1. 搜索+剪枝 POJ 1416 Shredding Company

    POJ 1416 Shredding Company Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5231   Accep ...

  2. 在linux下安装某个硬件驱动到方法

    东西很简单,几句话就能说清除. 使用lsipc检查你需要安装到硬件,记住硬件到关键型号,去搜索引擎搜索linux下的驱动文件 对文件进行安装简单的解压后基本上是 ./configure &&a ...

  3. HDU 2189 悼念512汶川大地震遇难同胞――来生一起走 --生成函数

    这题跟上两题也差不多. 把150以内的素数找出来,把素数的值看做硬币的面值,每个硬币的个数即ceil(150/prime[i]),因为再多也没用,最多组成n=150就行了,所以又回到了找硬币问题.用生 ...

  4. POJ 2773 Happy 2006【GCD/欧拉函数】

    根据欧几里德算法,gcd(a,b)=gcd(a+b*t,b) 如果a和b互质,则a+b*t和b也互质,即与a互质的数对a取模具有周期性. 所以只要求出小于n且与n互质的元素即可. #include&l ...

  5. WPF技巧-Canvas转为位图

    转自:http://www.cnblogs.com/tmywu/archive/2010/09/14/1825650.html 在WPF中我们可以将Canvas当成一种画布,将Canvas中的控件当成 ...

  6. 制作苹果推送通知APNS服务器证书文件

    1.准备证书申请文件 打开苹果电脑实用工具里的钥匙串访问程序 选择钥匙串访问—>证书助理—>从证书颁发机构申请证书 输入邮件地址,常用名词随便命名,在这里命名为APNS 选择存储到磁盘,将 ...

  7. MySQL server has gone away的解决方法

    用Python写了一个http服务,需要从mysql读数据库,第一天还好好的,第二天突然不行了.报错如下: pymysql.err.OperationalError: (2006, 'MySQL se ...

  8. ASP.net MVC自定义错误处理页面的方法

    在ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute特性,那 ...

  9. 对RESTful Web API的理解与设计思路

    距离上一篇关于Web API的文章(如何实现RESTful Web API的身份验证)有好些时间了,在那篇文章中提到的方法是非常简单而有效的,我在实际的项目中就这么用了,代码经过一段时间的磨合,已经很 ...

  10. C#报错:创建调试信息文件 ……obj\Debug\model.pdb: 拒绝访问

    错误:创建调试信息文件“.......\obj\Debug\model.pdb”时发生错误 --“......\obj\Debug\model.pdb: 拒绝访问. 解决办法如下: 删除该项目下的 b ...