Java : LinkedHashSet 示例
Java 中的 LinkedHashSet (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 LinkedHashSet<E> 方法的代码示例。
注解 :
- 本文可能使用了翻译软件以方便阅读。 另请查看英文原文。
简介
Set 接口的哈希表和链接列表实现,具有明确定义的遇到顺序。此实现与 HashSet 的不同之处在于它维护一个贯穿其所有条目的双向链接列表。 (机器翻译)
final var set = new LinkedHashSet<String>();
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.size()); // 3
System.out.println(set.contains("a")); // true
System.out.println(set.contains("b")); // true
System.out.println(set.contains("X")); // false
final var linkedHashSet = new LinkedHashSet<String>();
linkedHashSet.add("xxx");
linkedHashSet.add("yyy");
linkedHashSet.add("aaa");
linkedHashSet.add("bbb");
System.out.println(linkedHashSet); // [xxx, yyy, aaa, bbb]
final var hashSet = new HashSet<String>();
hashSet.add("xxx");
hashSet.add("yyy");
hashSet.add("aaa");
hashSet.add("bbb");
System.out.println(hashSet); // [aaa, bbb, yyy, xxx]
Constructors
LinkedHashSet ()
构造一个新的、空的链接哈希集,具有默认初始容量(16)和负载因子(0.75)。 (机器翻译)
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
System.out.println(set.isEmpty()); // true
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.size()); // 3
LinkedHashSet (int initialCapacity)
构造一个新的、空的链接哈希集,具有指定的初始容量和默认的加载因子(0.75)。 (机器翻译)
final var set = new LinkedHashSet<String>(10000000);
System.out.println(set); // []
final var startTime = System.nanoTime();
for (int i = 0; i < 1000000; i++) {
set.add(String.valueOf(i));
}
final var endTime = System.nanoTime();
// 0.066358 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
final var set = new LinkedHashSet<String>(1);
System.out.println(set); // []
final var startTime = System.nanoTime();
for (int i = 0; i < 1000000; i++) {
set.add(String.valueOf(i));
}
final var endTime = System.nanoTime();
// 0.104886 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
LinkedHashSet (int initialCapacity, float loadFactor)
构造一个新的、空的链接哈希集,具有指定的初始容量和负载因子。 (机器翻译)
final var set = new LinkedHashSet<String>(16, 0.05f);
System.out.println(set); // []
final var startTime = System.nanoTime();
for (int i = 0; i < 1000000; i++) {
set.add(String.valueOf(i));
}
final var endTime = System.nanoTime();
// 0.152455 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
final var set = new LinkedHashSet<String>(16, 0.75f);
System.out.println(set); // []
final var startTime = System.nanoTime();
for (int i = 0; i < 1000000; i++) {
set.add(String.valueOf(i));
}
final var endTime = System.nanoTime();
// 0.102799 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
LinkedHashSet (Collection<? extends E> c)
构造一个与指定集合具有相同元素的新链接哈希集。 (机器翻译)
final var c = List.of("a", "b", "c");
final var set = new LinkedHashSet<>(c);
System.out.println(set); // [a, b, c]
System.out.println(set.size()); // 3
Methods
void addFirst (E e)
添加一个元素作为此集合的第一个元素(可选操作)。 (机器翻译)
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
set.addFirst("aaa");
System.out.println(set); // [aaa]
set.addFirst("bbb");
System.out.println(set); // [bbb, aaa]
set.addFirst("ccc");
System.out.println(set); // [ccc, bbb, aaa]
void addLast (E e)
添加一个元素作为此集合的最后一个元素(可选操作)。 (机器翻译)
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
set.addLast("aaa");
System.out.println(set); // [aaa]
set.addLast("bbb");
System.out.println(set); // [aaa, bbb]
set.addLast("ccc");
System.out.println(set); // [aaa, bbb, ccc]
E getFirst ()
获取此集合的第一个元素。 (机器翻译)
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
set.addLast("b");
System.out.println(set); // [b]
System.out.println(set.getFirst()); // b
set.addLast("c");
System.out.println(set); // [b, c]
System.out.println(set.getFirst()); // b
set.addFirst("a");
System.out.println(set); // [a, b, c]
System.out.println(set.getFirst()); // a
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
try {
set.getFirst();
} catch (NoSuchElementException e) {
System.out.println("NoSuchElementException!");
}
// Result
// ↓
//NoSuchElementException!
E getLast ()
获取此集合的最后一个元素。 (机器翻译)
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
set.addLast("b");
System.out.println(set); // [b]
System.out.println(set.getLast()); // b
set.addFirst("a");
System.out.println(set); // [a, b]
System.out.println(set.getLast()); // b
set.addLast("c");
System.out.println(set); // [a, b, c]
System.out.println(set.getLast()); // c
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
try {
set.getLast();
} catch (NoSuchElementException e) {
System.out.println("NoSuchElementException!");
}
// Result
// ↓
//NoSuchElementException!
static <T> LinkedHashSet<T> newLinkedHashSet (int numElements)
创建一个新的、空的 LinkedHashSet,适合预期的元素数量。 (机器翻译)
final var set = LinkedHashSet.<String>newLinkedHashSet(3);
System.out.println(set); // []
System.out.println(set.isEmpty()); // true
set.add("a");
set.add("b");
set.add("c");
System.out.println(set); // [a, b, c]
System.out.println(set.size()); // 3
E removeFirst ()
删除并返回此集合的第一个元素(可选操作)。 (机器翻译)
final var set = new LinkedHashSet<String>();
set.add("aaa");
set.add("bbb");
set.add("ccc");
System.out.println(set); // [aaa, bbb, ccc]
System.out.println(set.removeFirst()); // aaa
System.out.println(set); // [bbb, ccc]
System.out.println(set.removeFirst()); // bbb
System.out.println(set); // [ccc]
System.out.println(set.removeFirst()); // ccc
System.out.println(set); // []
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
try {
var _ = set.removeFirst();
} catch (NoSuchElementException e) {
System.out.println("NoSuchElementException!");
}
// Result
// ↓
//NoSuchElementException!
E removeLast ()
删除并返回此集合的最后一个元素(可选操作)。 (机器翻译)
final var set = new LinkedHashSet<String>();
set.add("aaa");
set.add("bbb");
set.add("ccc");
System.out.println(set); // [aaa, bbb, ccc]
System.out.println(set.removeLast()); // ccc
System.out.println(set); // [aaa, bbb]
System.out.println(set.removeLast()); // bbb
System.out.println(set); // [aaa]
System.out.println(set.removeLast()); // aaa
System.out.println(set); // []
final var set = new LinkedHashSet<String>();
System.out.println(set); // []
try {
var _ = set.removeLast();
} catch (NoSuchElementException e) {
System.out.println("NoSuchElementException!");
}
// Result
// ↓
//NoSuchElementException!
SequencedSet<E> reversed ()
返回此集合的反向排序视图。 (机器翻译)
final var set = new LinkedHashSet<String>();
set.add("aaa");
set.add("bbb");
set.add("ccc");
System.out.println(set); // [aaa, bbb, ccc]
final var reversedSet = set.reversed();
System.out.println(reversedSet); // [ccc, bbb, aaa]
System.out.println(reversedSet.reversed()); // [aaa, bbb, ccc]
Spliterator<E> spliterator ()
针对该集合中的元素创建一个后期绑定和快速失败的 Spliterator。 (机器翻译)
final var set = new LinkedHashSet<String>();
Collections.addAll(set, "aaa", "bbb", "ccc");
System.out.println(set); // [aaa, bbb, ccc]
final var spliterator = set.spliterator();
spliterator.forEachRemaining(System.out::println);
// Result
// ↓
//aaa
//bbb
//ccc
Methods declared in HashSet
add, clear, clone, contains, isEmpty, iterator, newHashSet, remove, size, toArray, toArray
请参阅下面的链接。
Methods declared in AbstractSet
Methods declared in AbstractCollection
Methods declared in Collection
Methods declared in Iterable
Methods declared in Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
请参阅下面的链接。