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]