有序的集合,就是LinkedList,内部通过双向链表实现,LinkedHashMap为基础。
package collection.lession3;
import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
/**
* 老紫竹JAVA提高教程(3)-认识Set集合之LinkedHashSet。<br>
* <br>
* LinkedHashSet与HashSet的区别就是数据严格按照插入的顺序存放。<br>
* 删除之后会去掉那个位置,新增的数据将在集合的末尾。<br>
* HashSet 内部使用HashMap实现<br>
* 而LinkedHashSet内部使用LinkedHashMap实现。
*
* @author 老紫竹 JAVA世纪网(java2000.net)
*
*/
public class Lession3 {
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])));
}
}
测试:
尝试按照自己的意愿,控制LinkedHashSet里面数据的顺序,比如删除第一个,再加入,则其出现在了末尾了。这个很像排队买票,一旦你中途退出了,就只能重新排队。是不允许加塞的。
总结:
当我们处理集合,有想掌握其顺序的时候,可以考虑这个,当然List也是很好的选择,不过Hash算法,在查找数据的时候,比List性能要高的。
<!-- 分页 --><!-- 分页end -->
分享到:
相关推荐
LinkedHashSet 是 Java 中的一个集合类,它是 HashSet 的子类,同时也实现了 Set 接口。与 HashSet 不同的是,LinkedHashSet 保留了元素插入的顺序,并且具有 HashSet 的快速查找特性。下面是关于 LinkedHashSet 的...
import java.util.LinkedHashSet; public class HashSetTest { public static void main(String[] args) { HashSet hs = new LinkedHashSet(); hs.add("hahah"); hs.add("hehe"); hs.add("heihei"); hs....
LinkedHashSet是基于链表和哈希表实现的Set集合,它保证集合中元素的插入顺序。在插入元素时,它既会将元素插入到链表的末尾,又会将元素的哈希值和引用存储到哈希表中。因此,LinkedHashSet在性能上稍逊于HashSet,...
超全Java集合框架讲解 - 超全Java集合框架讲解 - 集合框架总览 - Iterator Iterable ListIterator - Map 和 Collection 接口 - Map 集合体系详解 - HashMap - LinkedHashMap - TreeMap - WeakHashMap - ...
Set集合类似于一个容器,程序把很多对象保存到Set集合中,Set集合对添加顺序不记录,当有重复的对象保存到Set集合时,不会新增后加的重复对象。 Set集合的特点 Set集合无重复元素,add()方法添加相同元素时,...
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
Java 中的 Collection Framework 包括了多种集合类,例如 List、Set、Map 等。List 中包括 ArrayList、LinkedList、Vector 等,Set 中包括 HashSet、LinkedHashSet 等,Map 中包括 HashMap、Hashtable 等。 List、...
HashSet 是 Java 中的一个集合类,它实现了 Set 接口并提供了基于哈希表的无序、不重复元素的集合。具体来说,它是通过哈希表(实际上是一个 HashMap 实例)来存储元素的。 以下是 HashSet 的一些主要特点: 无序...
Set 接口的实现类有 HashSet、LinkedHashSet 和 TreeSet 等集合类。 * List(列表):代表一个有序的集合,可以对 List 接口代表的有序集合中每个元素的插入位置进行精确地控制,并利用元素的整数索引(代表元素在...
Java集合类是Java.util包中的重要内容,它提供了一套性能优良、使用方便的接口和类,用于处理对象的集合。这些类主要用于存储、检索、操作一组对象数据。 Java集合类主要包括两种类型的容器:Collection和Map。...
Comparator的区别,List和Set集合详解,List和Set的总结,HashMap和HashTable的⽐较,Map的遍历,ArrayList 与 Vector 区别呢?为什么要⽤Arraylist取代Vector呢?HashSet与TreeSet与LinkedHashSet对⽐,HashMap 的⻓...
哈希值 LinkedHashSet TreeSet 自然排序Comparable 比较器排序Comparator Set集合 并发修改异常 LinkedList集合 ArrayList集合 List集合 Collection集合概述 冒泡排序 Object 异常 Math 包装类 Calendar类 ...
java8 集合源码分析 java基础复习 [TOC] 一、集合 1.Iterator 2.Collection 2.1 List--->有序、有索引、元素可重复 1.ArrayList: 底层是数组结构、查询快、增删慢、不同步 添加第一个元素的时候,创建默认个数是...
Collection, List, Set 和 Map 用法和区别 Collection 是 Java 中的一种对象...Collection、List、Set 和 Map 等集合类是 Java 中非常重要的一部分,需要深入了解其用法和区别,以便更好地使用集合类来实现业务逻辑。
java bitset源码Java源码分析 基础集合列表 ArrayList (done) Vector (done) LinkedList (done) Stack (done) ReferenceQueue (done) ArrayDeque (done) Set HashSet (done) TreeSet (done) LinkedHashSet (done) ...
《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...
List、Set、Queue和Map是Java集合框架中的四个主要接口,它们各自具有不同的特点和用途。 1. List(列表): - 允许重复元素。 - 具有按照元素插入顺序维护的有序集合。 - 可以通过索引访问和操作元素。 - 常见实现类...
"java集合框架中List、Set的练习题" 在java集合框架中,List和Set是两个非常重要的接口,分别用于存储有序和无序的集合。下面我们将通过四个练习题来深入了解List和Set的使用。 练习题1:获取10个1至20的随机数 在...
ArrayList 类(数组)② Vector 类(数组、线程同步)③ LinkedList 类(链表)④ CopyOnWriteArrayList 类(线程安全且高效的List)1.2 Set 集合① HashSet 类(HashCode)② LinkedHashSet 类(记录插入顺序)③ ...