From a66c4f9194d16def1678dba8489a7d71e031737c Mon Sep 17 00:00:00 2001 From: V-LiuShuang Date: Fri, 31 Jul 2026 16:36:45 +0800 Subject: [PATCH] add --- java-coding-rules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java-coding-rules.md b/java-coding-rules.md index dab763f..812fd77 100644 --- a/java-coding-rules.md +++ b/java-coding-rules.md @@ -15,7 +15,7 @@ - 对于null处理优先使用Optional而不是if,优先使用Stream而不是循环。 - 如果Stream的map代码块超过5行就单独写一个函数,如果map中代码块需要中间对象,优先使用记录类,记录类和DTO存放在一起。 - 构建JavaBean对象,优先使用构造函数而不是单独写工具类或方法,只有3个以内的属性,应提供一个全部参数的构造函数。 -- List在非多线程场景,默认用ArrayList就够了。只有需要按照插入顺序遍历元素的场景,才考虑使用LinkedList。需考虑线程安全用CopyOnWriteArrayList。或者等。 +- List在非多线程场景,默认用ArrayList就够了。只有需要按照插入顺序遍历元素的场景,才考虑使用LinkedList。需考虑线程安全用CopyOnWriteArrayList。 - Set在非多线程场景,默认用HashSet。对排序要求考虑用LinkedHashSet或TreeSet。需考虑线程安全用`cn.hutool.core.collection.ConcurrentHashSet`、ConcurrentSkipListSet、CopyOnWriteArraySet等。 - Map在非线程场景,默认使用HashMap就够了。对排序要求考虑用LinkedHashMap或TreeMap。如果存在并发场景,需考虑线程安全用ConcurrentHashMap或ConcurrentSkipListMap等JUC工具包。 - Queue的使用原则:要控制内存,用ArrayBlockingQueue。经典生产者消费者,用LinkedBlockingQueue。要窃取任务,用LinkedBlockingDeque。追求极致吞吐且不怕队列暴涨,用ConcurrentLinkedQueue。必须双端且高吞吐,用ConcurrentLinkedDeque。