天天看点

Java集合框架篇-57-LinkedHashSet基本概述和使用

      这篇,学习一个HashSet类的子类,叫LinkedHashSet,看名称就大概明白是什么作用。LinkedHashSet是底层用链表实现的一种HashSet集合。前面我们知道,链表存储是List的一种实现方式,最明显的特点就是能保证元素的存入和取出顺序是一致的。这个特点,刚好弥补了Set集合无序的缺点。

1.API阅读关于LinkedHashSet

       具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到 set 中的顺序(插入顺序)进行迭代。例如,插入元素顺序是a-b-c-d,迭代输出属性也是a-b-c-d。

       LinkedHashSet的构造方法有4个,然后没有一个自己的成员方法,想方法都是使用父类或者间接父类的方法。例如添加元素add()方法就是Set集合的方法。

2.LinkedHashSet代码简单演示

下面写一个LinkedHashSet,写一个添加元素,然后打印遍历元素的代码。

package hashset;

import java.util.LinkedHashSet;

public class Demo1_LinkedHashSet {

	public static void main(String[] args) {
		LinkedHashSet<String> lhs = new LinkedHashSet<>();
		//1.添加元素
		lhs.add("a");
		lhs.add("a");
		lhs.add("a");
		lhs.add("b");
		lhs.add("b");
		lhs.add("c");
		lhs.add("c");
		lhs.add("d");
		
		//2.直接打印集合
		System.out.println(lhs);
		
		//3 for each实现迭代
		for (String string : lhs) {
			System.out.println(string);
		}
	}

}
           

输出:

[a, b, c, d]
a
b
c
d
           

3.LinkesdHashSet特点总结

1)是HashSet的一个子类,所以也是能保证元素唯一的,和HashSet原理一样

2)底层是链表实现的,是Set集合中唯一一个能保证怎么存就怎么取的集合对象

继续阅读