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

阶段二5_集合ArrayList

一.对象数组

1.对象数组使用案例
需求:将(张三,23)(李四,24)(王五,25)
封装为3个学生对象并存入数组
随后遍历数组,将学生信息输出在控制台
思路
1. 定义学生类准备用于封装数据
2. 动态初始化长度为3的数组,类型为Student类型
3. 根据需求创建3个学生对象
4. 将学生对象存入数组
5. 遍历数组,取出每一个学生对象
6. 调用对象的getXxx方法获取学生信息,并输出在控制台

public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
public class TestObjectArray {public static void main(String[] args) {// 2. 动态初始化长度为3的数组,类型为Student类型Student[] arr = new Student[3];// 3. 根据需求创建3个学生对象Student stu1 = new Student("张三",23);Student stu2 = new Student("李四",24);Student stu3 = new Student("王五",25);// 4. 将学生对象存入数组arr[0] = stu1;arr[1] = stu2;arr[2] = stu3;// 5. 遍历数组,取出每一个学生对象for (int i = 0; i < arr.length; i++) {Student temp = arr[i];System.out.println(temp.getName() + "..." + temp.getAge());}}
}

2.对象数组使用案例缺点:

  当在来一个对象时,在想放到对象数组中,发现数组的长度已固定不能放入。这时候就需要一个可自动扩展的对象数组容器,就会用集合。

3.集合和数组的区别 :

共同点:都是存储数据的容器
不同点:数组的容量是固定的,集合的容量是可变的

二.ArrayList的构造方法和添加方法

1.ArrayList构造方法: ArrayList() 构造一个初始容量为 10 的空列表。
2.成员方法,添加:
boolean add(E e) 将指定的元素添加到此列表的尾部。
void add(int index, E element) 将指定的元素插入此列表中的指定位置。
3.注意:
集合容器如果没有加入<> 就可以存储任意数据类型
<> 泛型: 对集合容器存储的数据类型进行限制

public class Demo1ArrayList {public static void main(String[] args) {// 1. 创建集合容器对象ArrayList<String> list = new ArrayList<>();// 2. 调用对象的add方法, 向容器中添加数据list.add("111");list.add("222");list.add("333");list.add("444");list.add("555");list.add(0,"666"); //如果索引不存在会报错System.out.println(list); //[666,222,333,444,555]}
}

三.ArrayList类常用方法

1.添加:
boolean add(E e) 将指定的元素添加到此列表的尾部。
void add(int index, E element) 将指定的元素插入此列表中的指定位置。
2.删除:
public boolean remove(Object o) 删除指定的元素,返回删除是否成功
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
3.修改:
public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
4.查询:
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中的元素的个数

public class Demo2ArrayList {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();list.add("abc");list.add("111");list.add("222");list.add("333");list.add("444");list.add("555");//public E get(int index) 返回指定索引处的元素String s1 = list.get(0); //abcString s2 = list.get(1); //111String s3 = list.get(2); //222//public int size() 返回集合中的元素的个数int size = list.size();System.out.println(size); //6}public static void testSet() {ArrayList<String> list = new ArrayList<>();list.add("abc");list.add("111");list.add("222");list.add("333");list.add("444");list.add("555");//public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素String s = list.set(0,"666");System.out.println(s);  //abcSystem.out.println(list);  //[666,111,222,333,444,555]}public static void testRemove() {ArrayList<String> list = new ArrayList<>();list.add("abc");list.add("111");list.add("222");list.add("333");list.add("444");list.add("555");//public boolean remove(Object o) 删除指定的元素,返回删除是否成功boolean b1 = list.remove("abc");  //存在返回trueboolean b2 = list.remove("zzz");  //不存在返回falseSystem.out.println(list); //[111,222,333,444,555]//public E remove(int index)  删除指定索引处的元素,返回被删除的元素String s = list.remove(0); //111System.out.println(list);  //[222,333,444,555]}
}

四. 更多精彩内容访问下面链接

http://www.gxcode.top/code

http://www.lryc.cn/news/4049.html

相关文章:

  • 十一、Python——匿名函数
  • 数组常使用的方法
  • 2023华为软件测试笔试面试真题,抓紧收藏不然就看不到了
  • 洛谷2月普及组(月赛)
  • 【博学谷学习记录】超强总结,用心分享 | 架构师 Spring源码学习总结
  • Linux C/C++ timeout命令实现(运行具有时间限制)
  • 西湖论剑初赛web wp
  • 【YOLOv8/YOLOv7/YOLOv5系列算法改进NO.55】融入美团最新QARepVGG
  • Flutter Windows端打包并生成可安装文件流程
  • 凸优化学习:PART3凸优化问题(持续更新)
  • [ue4] 着色器绑定(Shader Binding)
  • Rust语言之迭代器
  • TreeSet 与 TreeMap And HashSet 与 HashMap
  • Java围棋游戏的设计与实现
  • 第七十三章 使用 irisstat 实用程序监控 IRIS - 使用选项运行 irisstat
  • 【博客619】PromQL如何实现Left joins以及不同metrics之间的复杂联合查询
  • Win11自定义电脑右下角时间显示格式
  • TrueNas篇-trueNas Scale安装
  • element表单搜索框与表格高度自适应
  • MySQL使用技巧整理
  • 七大设计原则之里氏替换原则应用
  • 1行Python代码去除图片水印,网友:一干二净
  • Connext DDS属性配置参考大全(2)
  • 一起Talk Android吧(第四百九十二回:精简版动画)
  • seata源码-全局事务回滚服务端源码
  • 【Vue3源码】第一章 effect和reactive
  • C函数指针
  • 2023同等学力申请硕士计算机综合国考
  • 英语基础-并列句概述
  • 大数据框架之Hadoop:HDFS(一)HDFS概述