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

从零学Java 集合概述

Java 集合概述

文章目录

  • Java 集合概述
    • 1 什么是集合?
    • 2 Collection体系集合
      • 2.1 Collection父接口
        • 2.1.1 常用方法
        • 2.1.2 Iterator 接口

1 什么是集合?

概念:对象的容器,定义了对多个对象进行操作的常用方法;可实现数组的功能。

和数组区别

  • 数组长度固定,集合长度不固定。
  • 数组可以存储基本类型和引用类型,集合只能存储引用类型。

2 Collection体系集合

Collection体系结构的根接口,代表一组对象,称为“集合”。

  • List接口的特点:有序有下标、元素可重复
  • Set接口的特点:无序无下标、元素不能重复

在这里插入图片描述

2.1 Collection父接口

特点:代表一组任意类型的对象。

2.1.1 常用方法

eg:

/*** @author 胡昊龙* @version 1.0* @description: TODO* @date 2024/1/10 11:09*/
public class Test {public static void main(String[] args) {//Collection接口的使用//创建集合Collection collection = new ArrayList();Collection collection1 = new ArrayList();//1 添加单个元素collection.add("北京");collection.add("上海");collection.add("杭州");collection.add("哈尔滨");collection.add("北京");collection1.add("廊坊");collection1.add("保定");collection1.add("保定");//1.1 添加整个集合collection.addAll(collection1);System.out.println("元素个数: "+collection1.size());System.out.println("打印: "+collection1);System.out.println("元素个数: "+collection.size());System.out.println("打印: "+collection);//2 删除//2.1 删除一个元素collection.remove("北京");System.out.println("删除以后: "+collection);//2.2 清空collection1.clear();System.out.println("清空: "+collection1);//3 遍历//3.1 增强forSystem.out.println("增强for-----------");for (Object o : collection) {System.out.println(o);}//3.2 迭代器:集合中专门用来遍历集合的System.out.println("迭代器------------");Iterator it = collection.iterator();//3.2.1 it.hasNext(); 判断是否还有元素//3.2.2 it.next(); 获取下一个元素while (it.hasNext()){Object next = it.next();System.out.println(next);}//3.2.3 it.remove(); 删除元素//4 判断//4.1 判断元素是否存在System.out.println(collection.contains("哈尔滨"));//4.2 判断集合是否为空System.out.println(collection1.isEmpty());}
}
2.1.2 Iterator 接口

Iterator:迭代器用来遍历集合的统一接口。

  • hasNext();判断是否还有元素
  • next();获取元素
  • remove();删除元素。
//3.2 迭代器:集合中专门用来遍历集合的
System.out.println("迭代器------------");
Iterator it = collection.iterator();
//3.2.1 it.hasNext(); 判断是否还有元素
//3.2.2 it.next(); 获取下一个元素
while (it.hasNext()){Object next = it.next();System.out.println(next);
}
//3.2.3 it.remove(); 删除当前元素
//it.remove();

注意

  • 不能执行多次next()。
  • 在使用迭代器过程中,不能使用集合的删除方法,只能使用迭代器的删除方法,
    否则出现并发修改异常(ConcurrentModificationException)

相关文章:

  • 【Flutter 开发实战】Dart 基础篇:常见的数据类型
  • 232.【2023年华为OD机试真题(C卷)】计算三叉搜索树的高度(JavaPythonC++JS实现)
  • 在React里面使用mobx状态管理详细步骤
  • Linux内核--进程管理(十二)LinuxIO基础知识与概念
  • uniapp自定义顶部导航并解决打包成apk后getMenuButtonBoundingClientRect方法失效问题
  • 华为“纯血”鸿蒙加速进场 高校、企业瞄准生态开发新风口
  • 安防监控EasyCVR视频融合/汇聚平台大华热成像摄像机智能告警上报配置步骤
  • 计算机算法贪心算法
  • 爆肝整理,接口测试+为什么要做接口测试总结,策底贯通...
  • 9.spring aop 原理
  • C++学习笔记(三十二):c++ 堆内存与栈内存比较
  • 什么是原生ip和广播ip
  • 记录汇川:H5U与Fctory IO测试8
  • 程序员英语 - 英文会议常用句型
  • Springboot+vue的毕业论文管理系统(有报告)。Javaee项目,springboot vue前后端分离项目
  • @jsonView过滤属性
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • CSS中外联样式表代表的含义
  • express如何解决request entity too large问题
  • github从入门到放弃(1)
  • iOS 系统授权开发
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • mongodb--安装和初步使用教程
  • Swift 中的尾递归和蹦床
  • Terraform入门 - 1. 安装Terraform
  • 猴子数据域名防封接口降低小说被封的风险
  • 力扣(LeetCode)965
  • 前嗅ForeSpider中数据浏览界面介绍
  • 如何学习JavaEE,项目又该如何做?
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 通信类
  • 智能合约Solidity教程-事件和日志(一)
  • 最近的计划
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (12)Linux 常见的三种进程状态
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (done) 两个矩阵 “相似” 是什么意思?
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (多级缓存)缓存同步
  • (论文阅读11/100)Fast R-CNN
  • (论文阅读30/100)Convolutional Pose Machines
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (一) storm的集群安装与配置
  • (一)基于IDEA的JAVA基础12
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .mysql secret在哪_MYSQL基本操作(上)
  • .Net 知识杂记
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET性能优化(文摘)
  • .pop ----remove 删除