Java集合进阶

集合进阶

1. Collection

  1. 常用方法

    1. add()
    2. remove()
    3. clear()
    4. contains()
    5. isEmpty()
    6. size()
  2. 迭代器 iterator

    • 常用方法

      • hasNext()
      • next()

      while(it.hasNext()){

      System.out.println(it.next());

      }

2. List

  1. 常用方法

    1. add(int index, E element)
    2. remove(int index)
    3. set(int index, E element)
    4. get(int index)
  2. 并发修改异常 ConcurrentModificationException

    产生原因:迭代器遍历的过程,通过集合对象修改了集合中元素的长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致。

    复制代码
    while(it.hasNext()){
        String s = it.next();
        if(s.equals("world")){
            list.add("java");
        }
    }

    解决方案:用for循环遍历,然后用集合对象做对应的操作即可。

    复制代码
    for(int i = 0;i < list.size(); i++){
    	String s = list.get(i);
    	if(s.equals("world")){
            list.add("java");
        }
    }
  3. ArrayList(数组),LinkedList(链表)

3. Set

HashSet

底层数据结构是哈希表,不包含重复元素。

LinkedHashSet

哈希表和链表实现set接口

元素有序

元素唯一

###TreeSet

元素有序,具体排序方法取决于构造方法(重写CompareTo接口/参数内重写Compare方法)

元素唯一

4. 泛型

  1. 类型通配符

  2. 可变参数:int...a

Map

Interface Map<K, V>

复制代码
Map<String, String> map = new HashMap<String, String>();
map.put("","");
相关推荐
IT 行者12 分钟前
GitHub Spec Kit 实战(五):/speckit.tasks 怎么拆——Spec Kit 五部曲收官
java·ai编程·claude
AC赳赳老秦19 分钟前
OpenClaw+Power Apps 实战:自动生成 Power Apps 应用、连接 Excel 数据源
大数据·开发语言·python·serverless·excel·deepseek·openclaw
提笔了无痕21 分钟前
如何用Go实现整套RAG流程
开发语言·后端·golang
(Charon)23 分钟前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
Yeats_Liao41 分钟前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis
JiaHao汤1 小时前
分布式事务方案全景:从理论到 Seata 落地
java·分布式·spring·spring cloud
2601_961875241 小时前
法考考试时间安排及科目|时间表|资料已整理
开发语言·c#·inverted-index·suffix-tree·sstable·r-tree·lsm-tree
AI科技星1 小时前
数术工坊第八卷:算力革命
c语言·开发语言·网络·量子计算·agi
geovindu1 小时前
go: Generators Pattern
开发语言·后端·设计模式·golang·生成器模式
色空大师2 小时前
【debug调试详解-idea】
java·ide·intellij-idea·调试·远程调试