1 LinkedHashSet概述
LinkedHashSet集合也是根据元素hashCode值来决定元素存储位置,但它同时使用链表维护元素的次序,这样使得元素看起来是以插入的顺序保存的。也就是说,当遍历LinkedHashSet集合里元素时,HashSet将会按元素的添加顺序来访问集合里的元素。
LinkedHashSet需要维护元素的插入顺序,因此性能略低于HashSet的性能,但在迭代访问Set里的全部元素时将有很好的性能,因为它以链表来维护内部顺序。
2 代码示例
import java.util.*;
public class LinkedHashSetTest
{
public static void main(String[] args)
{
LinkedHashSet books = new LinkedHashSet();
books.add("Java");
books.add("Linux");
books.add("C++");
books.add("算法");
System.out.println(books);
// 删除 Java
books.remove("Java");
// 重新添加 Java
books.add("Java");
System.out.println(books);
}
}
3 运行结果
[Java, Linux, C++, 算法]
[Linux, C++, 算法, Java]
4 运行说明
输出LinkedHashSet集合中的元素时,元素的顺序总是和添加顺序一致。