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

java基础学习 day37 (集合)

  1. 集合与数组的区别
  • 长度:数组长度固定,一旦创建完成,就不能改变。集合长度可变,根据添加和删除元素,自动扩容或自动收缩,(添加几个元素就扩容多少,删除几个元素就收缩多少)
  • 存储类型:数组可以存基本数据类型和引用数据类型。集合可以存引用数据类型,但集合不能直接存储基本数据类型,只有把基本数据类型变成包装类后才可以存到集合中
  • 基本数据类型对应的包装类:
基本数据类型包装类
byteByte
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
  • 在JDK5以后 int Integer,char Character(基础数据类型和包装类)之间可以互相转化,即实参可以直接写基础数据类型。
  1. 创建集合的对象

ArrayList <E > list = new ArrayList<E >();
//JDK7以前的写法
ArrayList <E > list = new ArrayList< >();
//从JDK7开始的写法

  • 其中:<E >为泛型,用来限定集合中存储数据的类型,在JDK7以后,后面的E可以省略,只写前面的E即可。
  • 在sout集合名时,打印的不是地址值,而是集合中存储的数据内容,同时会用[ ]把所有的数据进行包裹,数据与数据之间用“,”隔开,这是java已经写好的模式。
  1. ArrayList成员方法
    在这里插入图片描述
  • add(添加元素)的方法,若匹配数据类型则不管内容,返回值都是true,都会添加成功。
  • 且add(添加元素)的方法,添加的是元素的地址值,有一个注意点,如图:

若在循环外创建Student对象,只会申请一次内存空间用来存Student的值,则循环内每次添加的元素的地址都相同,修改这个Student对象的内容时,会将几个相同地址值的元素的内容均进行修改
在这里插入图片描述
若在循环内创建Student对象,则每次创建都会申请一片新空间用来存储Student的值,即每次添加的元素的地址值都不同,那么修改这个Student对象时,每次都是独立修改,不会对之前的造成影响。且这个Student对象名为局部变量,每次循环结束都会回收这个Student对象名,但因为集合中有元素的地址指向这块内存空间,所以,这块内存空间不会回收。
在这里插入图片描述

  • 其中remove(删除元素)的方法,会删除从左至右的第一个匹配的元素,删除成功后,返回true,集合会更新,若删除失败,返回false,集合不变。

相关文章:

  • CGAL 点云精配准之ICP算法
  • 主流的操作系统(带你快速了解)
  • Linux中的权限问题
  • HackTheBox Stocker API滥用,CVE-2020-24815获取用户shell,目录遍历提权
  • 【C语言航路】第十四站:文件
  • 2023牛客寒假算法集训营3
  • C++空间命名
  • C语言基础 — ( C语言库函数<stdio.h>——C标准的内容)
  • 【GIS】高分辨率遥感影像智能解译
  • 【Leetcode每日一题】34.在排序数组中查找元素的第一个和最后一个位置|二分求下标
  • 分支语句与循环语句
  • 【Python语言基础】——Python 类和对象
  • Java基础 Stream流方法引用异常文件
  • 【Hadoop】HDFS+Shell实践(定时上传数据至HDFS)
  • 约数个数及约数之和知识点(含公式)
  • 仿牛客论坛项目
  • Linux——进程间通信
  • 《深入浅出计算机组成原理》学习笔记 Day9
  • 2023年新年烟花代码(背景音乐完整版)
  • STM32编写OLED显示屏驱动
  • https://app.hackthebox.com/machines/Inject
  • Spring —— Spring简单的读取和存储对象 Ⅱ
  • 渗透测试之冰蝎实战
  • Mybatis、TKMybatis对比
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • 《谷粒商城基础篇》分布式基础环境搭建
  • 哈希表题目:砖墙
  • Vue 3.0 选项 生命周期钩子
  • 【车载嵌入式开发】AutoSar架构入门介绍篇
  • 【计算机视觉 | 目标检测】DETR风格的目标检测框架解读