找到 9301 篇文章 关于面向对象编程

Java 中 TreeMap、HashMap 和 LinkedHashMap 的区别

Paul Richard
更新于 2020-06-21 12:35:10

12K+ 阅读量

HashMap、TreeMap 和 LinkedHashMap 都实现了 java.util.Map 接口,以下是它们的特性。HashMapHashMap 的插入和查找复杂度为 O(1)。HashMap 允许一个 null 键和多个 null 值。HashMap 不维护任何顺序。TreeMapTreeMap 的插入和查找复杂度为 O(logN)。TreeMap 不允许 null 键,但允许多个 null 值。TreeMap 维护顺序。它按升序存储排序的键。LinkedHashMapLinkedHashMap 的插入和查找复杂度为 O(1)。LinkedHashMap 允许一个 null 键和多个 null 值。LinkedHashMap 维护键值对插入的顺序。示例import java.util.HashMap; import java.util.Hashtable; import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; public class Tester { ... 阅读更多

Java 中 HashTable 和 HashMap 的区别

Rishi Raj
更新于 2020-06-21 12:35:45

3K+ 阅读量

以下是 Java 中 HashTable 和 HashMap 类的一些显著区别。HashTableHashMap同步HashTable 是同步的。HashMap 不是同步的。线程安全HashTable 是线程安全的。HashMap 不是线程安全的。空对象HashTable 不允许 null 键或 null 值。HashMap 允许一个 null 键和多个 null 值。性能HashTable 速度更快。HashMap 比 HashTable 慢。自 Java 版本 1.21.5 起示例import java.util.HashMap; import java.util.Hashtable; import java.util.Map; public class Tester {    public static void main(String args[]) {       Map map = new HashMap();       map.put("1", "One");       map.put("2", "Two");       map.put("3", "Three");       map.put("5", "Five");       ... 阅读更多

Java 中 HashMap 和 ConcurrentHashMap 的区别

Arushi
更新于 2020-06-21 12:18:12

5K+ 阅读量

以下是 Java 中 HashMap 和 ConcurrentHashMap 类的一些显著区别。HashMapConcurrentHashMap同步HashMap 不是同步的。ConcurrentHashMap 是同步的。线程安全HashMap 不是线程安全的。ConcurrentHashMap 是线程安全的。迭代器类型HashMap 迭代器是快速失败的,如果在迭代期间发生并发修改,ArrayList 会抛出 ConcurrentModificationException。ConcurrentHashMap 是故障安全的,在迭代期间永远不会抛出 ConcurrentModificationException。空值HashMap 允许键和值为 null。ConcurrentHashMap 不允许 null 键/值。它会抛出 NullPointerException。性能HashMap 速度更快。ConcurrentHashMap 比 HashMap 慢。自 Java 版本 1.21.5 起示例import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; public class Tester {    public static void main(String[] args) {       List arrayList = new ArrayList(); ... 阅读更多

Java 中 ArrayList 和 CopyOnWriteArrayList 的区别

Vikyath Ram
更新于 2020-06-21 12:23:44

3K+ 阅读量

以下是 Java 中 ArrayList 和 CopyOnWriteArrayList 类的一些显著区别。ArrayListCopyOnWriteArrayList同步ArrayList 不是同步的。CopyOnWriteArrayList 是同步的。线程安全ArrayList 不是线程安全的。CopyOnWriteArrayList 是线程安全的。迭代器类型ArrayList 迭代器是快速失败的,如果在迭代期间发生并发修改,ArrayList 会抛出 ConcurrentModificationException。CopyOnWriteArrayList 是故障安全的,在迭代期间永远不会抛出 ConcurrentModificationException。其背后的原因是 CopyOnWriteArrayList 在每次修改时都会创建一个新的数组列表。删除操作ArrayList 迭代器支持在迭代期间删除元素。如果尝试在迭代期间删除元素,CopyOnWriteArrayList.remove() 方法会抛出异常。性能ArrayList 速度更快。CopyOnWriteArrayList 比 ArrayList 慢。自 Java 版本 1.21.5 起示例import java.util.Iterator; import java.util.concurrent.CopyOnWriteArrayList; public class Tester { ... 阅读更多

Java 中的 Deque 接口

Fendadis John
更新于 2020-06-21 12:26:34

378 阅读量

java.util.Deque 接口是 java.util.Queue 接口的子类型,它支持在两端插入和删除元素。接口声明public interface Deque extends QueueArrayDeque 类java.util.ArrayDeque 类提供可调整大小的数组并实现 Deque 接口。以下是关于数组 Deque 的重要要点:数组 Deque 没有容量限制,因此它们会根据需要增长以支持使用。它们不是线程安全的;在没有外部同步的情况下。它们不支持多个线程的并发访问。数组 Deque 中不允许使用空元素。它们比 Stack 和 LinkedList 更快。此类及其迭代器实现了 Collection 和 Iterator 的所有可选方法... 阅读更多

Java 中的 CopyOnWriteArrayList 类

karthikeya Boyini
更新于 2020-06-19 14:41:11

4K+ 阅读量

类声明public class CopyOnWriteArrayList    extends Object implements List, RandomAccess, Cloneable, SerializableCopyOnWriteArrayList 是 ArrayList 的线程安全变体,其中可以更改 ArrayList 的操作(add、update、set 方法)会创建底层数组的克隆。CopyOnWriteArrayList 用于线程环境中,其中读取操作非常频繁,而更新操作很少。CopyOnWriteArrayList 的迭代器永远不会抛出 ConcurrentModificationException。对 CopyOnWriteArrayList 的任何类型的修改都不会反映在迭代期间,因为迭代器已创建。不支持迭代中的 List 修改方法,如 remove、set 和 add。此方法将抛出 UnsupportedOperationException。可以将 null 添加到... 阅读更多

Java 中的 CopyOnWriteArraySet 类

Samual Sam
更新于 2020-06-19 14:45:11

549 阅读量

类声明public class CopyOnWriteArraySet    extends AbstractSet implements SerializableCopyOnWriteArraySet 类在内部使用 CopyOnWriteArrayList 执行所有操作,因此具有 CopyOnWriteArrayList 的基本属性。CopyOnWriteArraySet 是线程安全的。CopyOnWriteArraySet 用于线程环境中,其中读取操作非常频繁,而更新操作很少。CopyOnWriteArraySet 的迭代器永远不会抛出 ConcurrentModificationException。对 CopyOnWriteArraySet 的任何类型的修改都不会反映在迭代期间,因为迭代器已创建。不支持迭代中的 Set 修改方法,如 remove、set 和 add。此方法将抛出 UnsupportedOperationException。CopyOnWriteArraySet 方法以下是 CopyOnWriteArraySet 类中可用的一些重要方法。序号方法 & ... 阅读更多

使用 Java 统计文本文件中字符的数量

karthikeya Boyini
更新于 2020-06-19 13:10:12

5K+ 阅读量

我们可以使用 Java 的 BufferedReader 类读取文件中的字符。请参阅以下示例:示例考虑类路径中的以下文本文件。test.txt这是第 1 行 这是第 2 行 这是第 3 行 这是第 4 行 这是第 5 行 这是第 6 行 这是第 7 行 这是第 8 行 这是第 9 行 这是第 10 行Tester.javaimport java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; public class Tester {    private static final String FILE_PATH = "data.txt";    public static void main(String args[]) throws IOException {       ... 阅读更多

使用 Java 统计文本文件中段落的数量

karthikeya Boyini
更新于 2020-06-19 13:13:30

548 阅读量

我们可以通过将文件读入字符串,然后根据“\r”模式进行分割来读取文件中的段落。请参阅以下示例:示例考虑类路径中的以下文本文件。test.txt这是第 1 行 这是第 2 行 这是第 3 行 这是第 4 行 这是第 5 行 这是第 6 行 这是第 7 行 这是第 8 行 这是第 9 行 这是第 10 行Tester.javaimport java.io.File; import java.io.FileInputStream; import java.io.IOException; public class Tester {    public static void main(String args[]) throws IOException {       FileUtil fileUtil = ... 阅读更多

Java 中的 CountDownLatch

Janani Jaganathan
更新于 2022-10-13 11:25:00

3K+ 阅读量

对于并发执行,Java 中的 CountDownLatch 是一个重要的类,它确保一个或多个线程排队,以便其他线程完成其操作集。为了更好地理解 Java 中的 CountDownLatch,在本文中,您将学习使用示例和 CountDownLatch 方法来学习 CountDownLatch 的工作原理。Java 中的 CountDownLatch 及其工作原理基于计数值,CountDownLatch 用于多种用途,如下所示:当我们以计数值 1 开始 CountDownlatch 时,它将简单地充当打开/关闭闩锁或门。在... 阅读更多

广告