集合和数组的区别 :

共同点:都是存储数据的容器

不同点:数组的容量固定的,集合的容量可变

ArrayList的构造方法和添加方法:

public ArrayList() 创建一个空的集合对象
public boolean add(E e) 将指定的元素追加到此集合的末尾
public void add(int index,E element) 在此集合中的指定位置插入指定的元素

ArrayList<E> :调整大小的数组实现   <E> : 是一种特殊的数据类型泛型

怎么用呢 ? 在出现E的地方我们使用引用数据类型替换即可

举例:ArrayList<String>, ArrayList<Student>

ArrayList类常用方法【应用】:

成员方法 :

public boolean remove(Object o) 删除指定的元素,返回删除是否成功
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中的元素个数

ArrayList存储[字符串]并遍历:

案例需求 :

创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合

实现步骤 :

1:创建集合对象

2:往集合中添加字符串对象

3:遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现

4:遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现

5:遍历集合的通用格式

ArrayList存储[学生对象]并遍历

案例需求 :

创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

实现步骤 :

1:定义学生类

2:创建集合对象

3:创建学生对象

4:添加学生对象到集合中

5:遍历集合,采用通用遍历格式实现

键盘录入学生信息到集合:

案例需求 :

创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

学生的姓名和年龄来自于键盘录入

实现步骤 :

1:定义学生类,为了键盘录入数据方便,把学生类中的成员变量都定义为String类型

2:创建集合对象

3:键盘录入学生对象所需要的数据

4:创建学生对象,把键盘录入的数据赋值给学生对象的成员变量

5:往集合中添加学生对象

6:遍历集合,采用通用遍历格式实现

学生管理系统:

2.1 学生管理系统实现步骤

  • 案例需求

    针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:

    添加学生:通过键盘录入学生信息,添加到集合中

    删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除

  • 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改

    查看学生:将集合中的学生对象信息进行展示

    退出系统:结束程序

  • 实现步骤

    1. 定义学生类,包含以下成员变量

      学生类: Student成员变量:

      学号:sid

      姓名:name

      年龄:age

      生日:birthday

      构造方法:

      无参构造

      带四个参数的构造成员方法:

      每个成员变量对应给出get/set方法

    2. 学生管理系统主界面的搭建步骤

      2.1 用输出语句完成主界面的编写

      2.2 用Scanner实现键盘录入数据

      2.3 用switch语句完成操作的选择

      2.4 用循环完成再次回到主界面

    3. 学生管理系统的添加学生功能实现步骤

      3.1 用键盘录入选择添加学生

      3.2 定义一个方法,用于添加学生

      显示提示信息,提示要输入何种信息

      键盘录入学生对象所需要的数据

      创建学生对象,把键盘录入的数据赋值给学生对象的成员变量

      将学生对象添加到集合中(保存)

      给出添加成功提示

      3.3 调用方法

    4. 学生管理系统的查看学生功能实现步骤

      4.1 用键盘录入选择查看所有学生信息

      4.2 定义一个方法,用于查看学生信息

      显示表头信息

      将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”

      4.3 调用方法

    5. 学生管理系统的删除学生功能实现步骤

      5.1 用键盘录入选择删除学生信息

      5.2 定义一个方法,用于删除学生信息

      显示提示信息

      键盘录入要删除的学生学号

      调用getIndex方法,查找该学号在集合的索引

      如果索引为-1,提示信息不存在

      如果索引不是-1,调用remove方法删除并提示删除成功

      5.3 调用方法

    6. 学生管理系统的修改学生功能实现步骤

      6.1 用键盘录入选择修改学生信息

      6.2 定义一个方法,用于修改学生信息

      显示提示信息

      键盘录入要修改的学生学号

      调用getIndex方法,查找该学号在集合的索引

      如果索引为-1,提示信息不存在

      如果索引不是-1,键盘录入要修改的学生信息

      集合修改对应的学生信息

      给出修改成功提示

      6.3 调用方法

    7. 退出系统

      使用System.exit(0);退出JVM

ArrayList集合和数组的区别相关推荐

  1. 什么是集合,集合的定义,集合与数组的区别,怎么创建一个集合?

    一:什么是集合? 1.集合类存放于java.util包中. 2.集合类型主要有3种:set(集).list(列表)和map(映射). 3.集合存放的都是对象的引用,而非对象本身.所以我们称集合中的对象 ...

  2. java的集合和数组_Java集合和数组的区别

    Java集合和数组的区别 集合和容器都是Java中的容器. 区别 数组特点:大小固定,只能存储相同数据类型的数据 集合特点:大小可动态扩展,可以存储各种类型的数据 转换 数组转换为集合: Arrays ...

  3. Java中集合和数组的区别

    区别: 1)    数组的长度是固定的,集合的长度可以动态扩展 2)    数组只能存储相同类型的数据,集合可以存储不同的类型的数据 public static void main(String[] ...

  4. php集合与数组的区别,java集合与数组的区别

    数组 数组是java语言内置的数据类型,他是一个线性的序列,所有可以快速访问其他的元素,数组和其他语言不同.(推荐学习:java课程) 当你创建了一个数组时,他的容量是不变的,而且在生命周期也是不能改 ...

  5. 练习:自己写一个容器ArrayList集合 一一数组综合练习2

    1 package cn.bjsxt.collection; 2 3 /** 4 * 自己实现一个ArrayList 5 */ 6 import java.util.ArrayList; 7 impo ...

  6. php集合与数组的区别,php数组和链表的区别总结

    PHP中数组和链表的区别 从逻辑结构来看 1..数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况.当数据增加时,可能超出原先定义的元素个数:当数据减少时,造成内存浪费:数组可以根据 ...

  7. java怎么把随机数放入数组_Java学习:集合的使用与数组的区别

    ArrayList 集合 ArrayList 集合 ArrayList list = new ArrayList<>(); 对于ArrayList来说,有一个尖括号代表泛型. 泛型:也就是 ...

  8. 基于API的ArrayList集合之学习记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.arraylist集合的出现 对象数组的使用 对象数组的缺点 为了弥补对象数组的缺点,出现了arraylist集合 二. ...

  9. 什么是集合,集合和数组的区别是什么

    集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组的区别: 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象 ...

最新文章

  1. Java学习笔记#数组的初始化方式
  2. uva1152 - 4 Values whose Sum is 0(hash或STL技巧ac)
  3. memcache、redis原理对比
  4. Linux修改密码后不能SSH远程登录了
  5. JDK 5、6、7、8、9、10、11、12、13、14 新特性汇总
  6. 4017-二叉排序树的限定条件下的数据输出(C++,附思路及建立时的可能错误排查)
  7. scala基础之类和对象
  8. python坦克大战小游戏,打包为exe文件
  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-2.微服务下登录检验解决方案 JWT讲解...
  10. 如何通过C#开发调用Skyline软件中提供的小工具
  11. 如何下载衡水市卫星地图高清版大图
  12. “非功能需求”属于模糊术语吗
  13. 灰度图像和彩色图像的直方图均衡化(python实现)
  14. 小米手机v3.exo 合并_eXo Platform 3.0访谈
  15. [Error] ADC.SchDoc Compiler Net NetU1_AD1_14 contains floating input pins (Pin U1_AD1-14) 19:27:
  16. tar解压tgz文件出现gzip: stdin: not in gzip format报错问题
  17. (裴蜀定理)ax + by = m 有解,当且仅当 m 是 gcd(a,b) 的倍数
  18. python利用公式计算Π(pi)的值
  19. MUI前端框架,MUI返回上一页并刷新
  20. 人工智能法甲分析报告:揭秘巴黎独霸原因

热门文章

  1. java 仿qq mysql_基于Java远程通信(仿QQ)及应用研究设计(MySQL)(含录像)
  2. React 脚手架创建项目
  3. CSS 实现居中的各种方式
  4. Splashtop Personal 安装教程
  5. MySQL查看所有用户及权限
  6. mysql-查看用户权限
  7. [转载翻译][重新整理]西川善司的”METAL GEAR SOLID 4”图形讲座(4)
  8. MySQL插入数据很慢优化思路
  9. win10忘记开机密码,使用U盘解决问题(不用重装系统,不会丢失数据)
  10. PHP7新特性基础学习