您的位置:首页 > 新闻 > 资讯 > 今天十堰头条新闻_幼儿园主题设计网络图_浙江关键词优化_百度智能小程序怎么优化排名

今天十堰头条新闻_幼儿园主题设计网络图_浙江关键词优化_百度智能小程序怎么优化排名

2025/12/16 16:56:04 来源:https://blog.csdn.net/2201_75559074/article/details/147013352  浏览:    关键词:今天十堰头条新闻_幼儿园主题设计网络图_浙江关键词优化_百度智能小程序怎么优化排名
今天十堰头条新闻_幼儿园主题设计网络图_浙江关键词优化_百度智能小程序怎么优化排名

目录

  • 一、List接口及其实现类
  • 二、Set接口及其实现类
  • 三、Map接口及其实现类
  • 四、Queue/Deque队列
  • 五、Stack栈
  • 六、树形结构
  • 七、注意事项与最佳实践
  • 总结

一、List接口及其实现类

核心实现类

  • ArrayList:基于动态数组
  • LinkedList:基于双向链表

常用操作方法

List<String> list = new ArrayList<>();// 增
list.add("元素");         // 末尾添加
list.add(0, "首位插入"); // 指定位置插入// 删
list.remove(0);         // 按索引删除
list.remove("元素");    // 按对象删除// 查
String element = list.get(0);       // 按索引获取
int index = list.indexOf("元素");   // 获取元素索引// 改
list.set(0, "新值");     // 修改指定位置// 遍历
for (String s : list) { /*...*/ }
list.forEach(System.out::println);

特点对比

  • ArrayList:随机访问O(1),插入删除O(n)
  • LinkedList:随机访问O(n),头尾操作O(1)

二、Set接口及其实现类

主要实现类

  • HashSet:无序存储
  • LinkedHashSet:保持插入顺序
  • TreeSet:自动排序

常用操作

Set<Integer> set = new HashSet<>();// 增
set.add(10);        // 成功返回true// 删
set.remove(10);     // 成功返回true// 查
boolean exists = set.contains(10);// 遍历
Iterator<Integer> it = set.iterator();
set.forEach(e -> System.out.println(e));

特殊方法

// TreeSet专属方法
TreeSet<Integer> sortedSet = new TreeSet<>();
sortedSet.first();        // 获取最小元素
sortedSet.tailSet(50);    // 获取≥50的子集

三、Map接口及其实现类

主要实现类

  • HashMap:快速查找
  • LinkedHashMap:保持插入顺序
  • TreeMap:键值排序

基础操作

Map<String, Integer> map = new HashMap<>();// 增/改
map.put("key", 100);      // 返回旧值或null// 删
map.remove("key");        // 返回被删值// 查
int value = map.get("key"); // 不存在返回null// 遍历
for (Map.Entry<String, Integer> entry : map.entrySet()) {entry.getKey();entry.getValue();
}

Java8+增强方法

map.getOrDefault("key", 0);     // 安全获取
map.putIfAbsent("key", 100);    // 不存在时插入
map.compute("key", (k,v) -> v+1); // 计算新值

四、Queue/Deque队列

常用实现类

  • LinkedList:双端队列
  • PriorityQueue:优先级队列

队列操作

Queue<String> queue = new LinkedList<>();// 入队
queue.offer("元素");     // 推荐使用
queue.add("元素");       // 可能抛异常// 出队
String head = queue.poll(); // 返回并移除头元素
String peek = queue.peek(); // 仅查看不移除

双端队列操作

Deque<String> deque = new ArrayDeque<>();
deque.offerFirst("头插");
deque.offerLast("尾插");
deque.pollFirst();
deque.pollLast();

五、Stack栈

推荐实现方式

Deque<Integer> stack = new ArrayDeque<>();// 入栈
stack.push(1);       // 等效addFirst()// 出栈
int top = stack.pop(); // 等效removeFirst()

六、树形结构

TreeMap特殊方法

TreeMap<Integer, String> treeMap = new TreeMap<>();// 范围查询
Map.Entry<Integer, String> lower = treeMap.lowerEntry(50); // 最大key<50的条目
SortedMap<Integer, String> subMap = treeMap.subMap(20, 80); // [20,80)区间

七、注意事项与最佳实践

  1. 线程安全

    • 多线程环境使用ConcurrentHashMapCopyOnWriteArrayList
    • Collections.synchronizedList()包装非线程安全集合
  2. 性能考量

    • 随机访问:优先ArrayList
    • 频繁插入删除:考虑LinkedList
    • 大数据量去重:使用HashSet
  3. 遍历删除陷阱

    // 错误方式:会抛ConcurrentModificationException
    for (String s : list) {if(s.equals("del")) list.remove(s);
    }// 正确方式:使用迭代器
    Iterator<String> it = list.iterator();
    while(it.hasNext()){if(it.next().equals("del")) it.remove();
    }
    
  4. 空值处理

    • HashMap允许null键/值
    • TreeMap不允许null键
    • ConcurrentHashMap完全禁止null

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com