Java LinkedHashSet示例
Java中的LinkedHashSet类与HashSet不同,因为它的实现在所有元素之间维护一个双链接列表。这个链表定义了迭代顺序,即元素插入集合的顺序。它被称为*插入顺序。*如果元素被重新插入到集合中,插入顺序不受它的影响。有些人更喜欢这种实现方式,因为它可以让用户免于HashSet提供的未指定和混乱的排序。
LinkedHashSet的优势
LinkedHashSet维护元素的插入顺序
插入、删除和检索操作的时间复杂度为O(1)(恒定时间)。
LinkedHashSet允许1个空元素。
LinkedHashSet使用equals()和hashCode(),因此可以删除可能的重复元素。
LinkedHashSet中的构造函数
LinkedHashSet():初始化一个新的链接哈希集,默认初始容量为16,加载因子为0.75.
LinkedHashSet(集合<?extends E>c):使用与指定集合相同的元素初始化新的链接哈希集。
LinkedHashSet(int initialCapacity):使用指定的初始容量初始化新的链接哈希集。
LinkedHashSet(int initialCapacity,float loadFactor):使用指定的容量和加载因子初始化新的链接哈希集。
LinkedHashSet中的方法
从类继承的方法java.util.HashSet:add)、clear)、clone)、contains)、isEmpty)、iterator)、remove)、size)
从类继承的方法java.util.AbstractSet:equals),哈希代码),removeAll)
从类继承的方法java.util.AbstractCollection:addAll)、containsAll)、retainal)、toArray)、toArray)、toString)
从类继承的方法java.lang.Object:finalize)、getClass)、notifyAll)、wait)、wait)、wait)
从接口继承的方法java.util.Set:add)、addAll)、clear)、contains)、containsAll)、equals)、hashCode)、isEmpty)、iterator)、remove)、removeAll)、retainal)、size)、toArray)、toArray)
有关所有方法的文档,可以访问Oracle官方文档页。
使用Iterator()迭代LinkedHashSet
import java.util.*;
class LinkedHashSetExample{
public static void main(String args[]){
LinkedHashSet<String> animals=new LinkedHashSet();
animals.add("Elephant");
animals.add("Tiger");
animals.add("Lion");
Iterator<String> iterator=animals.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
输出
Elephant Tiger Lion
循环遍历LinkedHashSet
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<String>();
for (int i = 0; i < linkedHashSet.size(); i++) {
System.out.println(linkedHashSet.get(i));
}
使用Enchanced For Loop遍历LinkedHashSet
for (String temp : linkedHashSet) {
System.out.println(temp);
}
使用While循环遍历LinkedHashSet
int i = 0;
while (i < linkedHashSet.size()) {
System.out.println(linkedHashSet.get(i));
i++;
}
使用LinkedHashSet的示例程序
import java.util.LinkedHashSet;
public class LinkedHashSetExample
{
public static void main(String[] args)
{
LinkedHashSet<String> coins =
new LinkedHashSet<String>();
//Adding element to LinkedHashSet
coins.add("5");
coins.add("10");
coins.add("20");
coins.add("50");
coins.add("100");
//Adding a duplicate would result in no addition of the element
coins.add("5");
//Adding another coin value
coins.add("75");
System.out.println("Size of the list = " +
coins.size());
System.out.println("Original LinkedHashSet:" + coins);
System.out.println("Removing 75 from LinkedHashSet: " +
coins.remove("75"));
System.out.println("Checking if 50 is present=" +
coins.contains("50"));
System.out.println("Updated LinkedHashSet: " + coins);
}
}
输出
Size of LinkedHashSet=5 Original LinkedHashSet:[5, 10, 20, 50, 75, 100] Removing 75 from LinkedHashSet: true Checking if 50 is present=true Updated LinkedHashSet:[5, 10, 20, 50, 100]

