当前位置: 首页 > wzjs >正文

大学科技园东区 做网站百度网盘app免费下载安装老版本

大学科技园东区 做网站,百度网盘app免费下载安装老版本,杭州公司注册多少钱,html5转wordpress主题Java 集合类是用于存储和操作数据的核心工具,主要分为Collection和Map两大接口体系,每个接口下有多种实现类。以下是 Java 集合类的完整介绍: 一、集合框架核心接口 1. Collection 接口 集合体系的根接口,定义了添加、删除、遍…

Java 集合类是用于存储和操作数据的核心工具,主要分为Collection和Map两大接口体系,每个接口下有多种实现类。以下是 Java 集合类的完整介绍:

一、集合框架核心接口

1. Collection 接口

集合体系的根接口,定义了添加、删除、遍历等基本操作

三个主要子接口:

  • List:有序、可重复元素的集合,支持索引访问
  • Set:唯一元素集合,不允许重复值
  • Queue:按特定顺序(如 FIFO)处理元素的集合

2. Map 接口

以键值对(Key-Value)形式存储数据,键唯一

二、常用集合类及其特点

1. List 实现类

类名特点
ArrayList基于动态数组实现,随机访问高效,中间位置增删效率低
LinkedList基于双向链表实现,增删效率高,随机访问效率低
Vector线程安全,性能低于 ArrayList,已逐渐被淘汰

2. Set 实现类

类名特点
HashSet基于哈希表(底层为 HashMap),不保证元素顺序
LinkedHashSet继承 HashSet,用链表维护插入顺序,插入和访问顺序一致
TreeSet基于红黑树实现,元素自然排序或按比较器排序

3. Queue 实现类

类名特点
LinkedList实现 Deque 接口,可作为双向队列使用
PriorityQueue基于堆结构,按优先级排序,不允许 null 元素
ArrayDeque基于数组的双端队列,不允许 null 元素

4. Map 实现类

类名特点
HashMap基于哈希表,不保证顺序,允许键值为 null
LinkedHashMap继承 HashMap,用链表维护插入顺序或访问顺序
TreeMap基于红黑树,按键排序,不允许键为 null
Hashtable线程安全,性能低于 HashMap,不允许键值为 null

三、线程安全的集合类

  • 同步包装类

通过Collections.synchronizedXXX()转换非线程安全集合:

List<String> syncList = Collections.synchronizedList(new ArrayList<>());
  • 并发集合类(java.util.concurrent 包)

ConcurrentHashMap:分段锁实现的线程安全 HashMap,性能优于 Hashtable
CopyOnWriteArrayList:写操作时创建副本的线程安全 ArrayList

四、集合常用操作示例

import java.util.*;public class CollectionExample {public static void main(String[] args) {// List操作List<String> list = new ArrayList<>();list.add("apple");list.add("banana");System.out.println(list.get(0)); // 输出: apple// Set操作Set<Integer> set = new HashSet<>();set.add(1);set.add(2);System.out.println(set.contains(1)); // 输出: true// Map操作Map<String, Integer> map = new HashMap<>();map.put("one", 1);map.put("two", 2);System.out.println(map.get("one")); // 输出: 1// 遍历集合for (String element : list) {System.out.println(element);}// Stream API过滤list.stream().filter(e -> e.startsWith("a")).forEach(System.out::println);}
}

五、字典(Map)遍历

1. 遍历键值对(EntrySet)

这是最高效的遍历方式,尤其适合需要同时访问键和值的场景。

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("cherry", 3);// 使用for-each循环遍历EntrySet
for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}// 使用Iterator(适合需要在遍历中删除元素的场景)
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {Map.Entry<String, Integer> entry = iterator.next();if (entry.getValue() == 2) {iterator.remove(); // 安全删除元素}
}

2. 单独遍历键(KeySet)

如果只需要访问键,可以使用这种方式。

// 使用for-each循环遍历键
for (String key : map.keySet()) {System.out.println("Key: " + key);// 如果需要值,可以通过map.get(key)获取,但效率稍低System.out.println("Value: " + map.get(key));
}// 使用Stream API(Java 8+)
map.keySet().stream().forEach(key -> System.out.println("Key: " + key));

3. 单独遍历值(Values)

若只需要访问值,可采用此方式。

// 使用for-each循环遍历值
for (Integer value : map.values()) {System.out.println("Value: " + value);
}
// 使用Stream API收集值到List
List<Integer> valuesList = new ArrayList<>(map.values());

六、集合选择原则

  • 有序可重复场景
    频繁随机访问:选ArrayList
    频繁增删操作:选LinkedList
  • 唯一元素场景
    不要求顺序:选HashSet
    需插入顺序:选LinkedHashSet
    需排序:选TreeSet
  • 键值对存储场景
    不要求顺序:选HashMap
    需排序:选TreeMap
  • 多线程环境
    优先使用ConcurrentHashMap、CopyOnWriteArrayList等并发集合类

七、注意事项

  • 迭代修改异常
    遍历集合时修改结构会触发ConcurrentModificationException,建议使用Iterator.remove()或for-each循环
  • 哈希方法重写
    HashMap和HashSet依赖hashCode()和equals(),自定义类需正确重写这两个方法
  • 性能优化
    ArrayList可指定初始容量减少扩容开销
    LinkedList随机访问需遍历链表,避免高频索引操作
http://www.dtcms.com/wzjs/403006.html

相关文章:

  • 房地产网站建设公司推荐新手小白怎么做跨境电商
  • 做房地产资质是什么网站查网站关键词快速排名服务
  • 福州中小企业网站制作百度一下官方网页版
  • 代理登录网站百度提交网址入口
  • 怎么样自己做网站今天的新闻主要内容
  • 做亚马逊联盟一定要有网站吗成人用品哪里进货好
  • 仿win8网站模板网站优化排名软件网
  • 网站刚建好怎么做能让百度收录品牌营销做得好的品牌有哪些
  • 好的h5网站模板seo关键词是怎么优化的
  • c2c网站建设自己如何制作一个网页
  • 支付宝可以给第三方网站做担保么推广怎么做才可以赚钱
  • 做威客网站有何前途seo咨询推广找推推蛙
  • 网站建设调查分析seo是什么缩写
  • 深圳制作外贸网站站长之家关键词挖掘
  • 网站开发流程需要用到的语言做网络推广一个月的收入
  • 深圳wap网站建设互联网营销方法有哪些
  • 网站设计稿抖音seo推广
  • 专业仿站网站建设中国500强最新排名
  • 怎么做58同城网站教程时事新闻热点
  • 黄山找人做网站线下营销推广方式有哪些
  • 云南网站建设天锐科技代写企业软文
  • 为什么网站后台google登陆不了 firefox可以google seo 优化招聘
  • 国内专门做旅游攻略的网站网络培训学校
  • 做网站提成seo工作前景如何
  • 表白网站建设福州关键词排名软件
  • 品牌策划ppt海淀区seo多少钱
  • WordPress网站子目录访问学计算机哪个培训机构好
  • 网站用什么主机跟我学seo
  • 企业网站建设总结中国目前最好的搜索引擎
  • 做女装代理需要自建网站么网络营销试题库及答案