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("","");
相关推荐
麦麦麦当劳大王1 小时前
【油猴脚本】Boss直聘 岗位职责复制
开发语言·前端·javascript
starzy19902 小时前
深入理解Scala Map:从实现原理到工程实践
开发语言·后端·scala
只睡四小时2 小时前
Three.js Sub-tick:漏判 60.7%→0
开发语言·javascript·性能优化·ecmascript·游戏开发·three.js·碰撞检测
码农小河663 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
东鹏特饮5 小时前
系统运维(传统/通用运维)面试题
开发语言·php
风若飞5 小时前
Spring Ai 入门遇到问题1
java·后端·spring
今天要早睡_5 小时前
C++01_入门基础复习
开发语言·c++
Nuanyt5 小时前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
黑马程序员毕设6 小时前
基于 Java 的餐饮点餐系统设计与应用报告
java·开发语言
SL_staff6 小时前
从文档工具到知识中枢:基于JVS数字底座构建企业级统一内容管理平台的技术实践
java·开源·全栈