集合基础

1.1 集合概述

编程的时候如果要存储多个数据,使用长度固定的数组存储格式,不一定满足我们的需求,更适应不来变化的需求,那么该如何选择呢?
集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
集合类有很多,目前我们先学习一个:ArrayList

1.2 ArrayList集合

软件包 java.util —> 需要导包
ArrayList
1、可调整大小的数组实现
2、E—> 是此列表中元素的类型,泛型
ArrayList的使用:
在出现E的地方我们使用应用数据类型替代即可
举例:ArrayList.ArrayList
1.2 ArrayList构造方法和添加方法
方法名 说明
public ArrayList() 创建一个空的集合对象
public boolean add(E e) 将指定的元素追加到此集合的末尾
public void add(int index, E element) 在此集合中的指定位置插入指定的元素
代码实现:
public static void _main(String[] args) {
// public ArrayList(): 创建一个空的集合对象,ArrayList自动导包
// 左边无参没报错是JDK新特性根据前面的参数推断出来的
ArrayList arrayList = _new _ArrayList<>();
// public boolean add(E e): 将指定的元素追加到此集合的末尾
// 输出:true 和 Hello ,boolean判断添加成功或者失败所以输出true
// System.out.println(“arrayList: “ + arrayList.add(“Hello”));
arrayList.add(“Hello”);
arrayList.add(“World”);
arrayList.add(“Java”);
// 输出 arrayList: [Hello, World, Java]
//public void add(int index, E element): 在此集合中的指定位置插入指定的元素
arrayList.add(0,”你好”);
// arrayList: [你好, Hello, World, Java]
// 输出集合
System.out.println(“arrayList: “ + arrayList); }
方法名 说明
public boolean remove(Object o) 删除指定的元素,返回删除是否成功
public boolean remove(int index) 删除指定索引处的元素,返回被删除的元素
public E setd(int index, E element) 修改指定索引处的元素,返回被修改的元素
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中元素的个数
代码实现:
_public static void _main(String[] args) {
// 创建集合 _ArrayList arrayList = _new _ArrayList<>();
// 添加元素 _arrayList.add(“Hello”);
arrayList.add(“World”);
arrayList.add(“Java”);
// 输出 arrayList: [Hello, World, Java]

  1. // public boolean remove(Object o):删除指定的元素,返回删除是否成功<br /> // System.out.println(arrayList.remove("你好"));<br /> // 输出:false和 arrayList: [Hello, World, Java] ,因为没有该元素<br /> // System.out.println(arrayList.remove("World"));<br /> // 输出:true和 arrayList: [Hello, Java]
  2. // public boolean remove(int index) : 删除指定索引处的元素,返回被删除的元素<br /> // 返回被删除的元素:World 和 arrayList: [Hello, Java]<br /> // System.out.println(arrayList.remove(1));
  3. // public E set(int index, E element):修改指定索引处的元素,返回被修改的元素<br /> // 返回被修改的元素:World 和 arrayList: [Hello, 你好, Java]<br /> // System.out.println(arrayList.set(1,"你好"));
  4. // public E get(int index): 返回指定索引处的元素<br /> // 返回指定索引处的元素:Hello<br /> // System.out.println(arrayList.get(0));
  5. // public int size(): 返回集合中元素的个数<br /> // 返回集合中元素的个数: 3<br /> _System._out_.println(arrayList.size());<br /> _// 输出集合<br /> _System._out_.println("arrayList: " + arrayList); }<br />// 输出结果为<br />3 ;arrayList: [Hello, World, Java]

案例:存储字符串并遍历

需求:创建一个存储字符串的集合,存储3个字符串元素,使用程序实现再控制台遍历该集合
思路:
① 创建集合对象
② 往集合中添加字符串对象通过add()方法实现
③ 遍历集合,首先能够获取到集合中的每一个元素,这个通过get(int index)方法实现
④ 遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
⑤ 遍历集合通用格式
for(int i = 0 ; i < 集合对象.size(); i++){ 集合对象.get() 就是指定索引处的元素 }
代码实现:
public static void _main(String[] args) {
// 创建集合对象 arrayList _ArrayList arrayList = _new _ArrayList<>();
// 往集合中添加字符串对象通过.add()方法实现 _arrayList.add(“Hello”);
arrayList.add(“World”);
arrayList.add(“Java”);
// 遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现 for (int _i = 0;i < arrayList.size();i++){
// 遍历集合,首先能够获取到集合中的每一个元素,这个通过.get(int index)方法实现 _String s = arrayList.get(i);
System._out
.println(s); } } }

案例:存储学生对象并遍历

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现再控制台遍历该集合
思路:
① 创建学生类
② 创建集合对象,集合对象里里面是学生类所以是,创建一个新的集合对象arrayList
③ 创建学生对象,给成员变量赋值(带参给set()方法赋值)
④ 添加学生对象到集合中,使用.add()方法
⑤ 遍历集合,采用通用便利格式实现,通过.get(int index)方法获取每个集合中的对象
代码实现:
public static void _main(String[] args) {
// 创建集合对象,集合对象里面是定义的学生类所以是, _ArrayList arrayList = _new _ArrayList();
// 创建学生对象,给成员变量赋值(使用带参加上set()方法) _StudentArray studentArray = _new _StudentArray(“Jack”, 29);
StudentArray studentArray1 = _new _StudentArray(“Tom”, 30);
StudentArray studentArray2 = _new _StudentArray(“Mark”, 20);
// 添加学生对象到集合中,使用.add()方法 _arrayList.add(studentArray);
arrayList.add(studentArray1);
arrayList.add(studentArray2);
// 遍历集合,采用通用便利格式实现 for (int _i = 0; i < arrayList.size(); i++) {
StudentArray student = arrayList.get(i);
System._out
.println(student.getName() + “,” + student.getAge()); } }

案例:存储学生对象并遍历(改版)

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现再控制台遍历该集合,学生的姓名和年龄来自于键盘录入
① 创建学生类,为了键盘录入数据方便,把学生类的成员变量定义为String类型
② 创建集合对象,集合对象里里面是学生类所以是,创建一个新的集合对象arrayList
③ 键盘录入学生对象所需要的数据
④ 创建学生对象,把键盘录入的数据给成员变量赋值(带参给set()方法赋值)
⑤ 添加学生对象到集合中,使用.add()方法
⑥ 遍历集合,采用通用便利格式实现,通过.get(int index)方法获取每个集合中的对象
代码实现:
public static void _main(String[] args) {
// 创建集合对象,集合对象里面是定义的学生类所以是 _ArrayList arrayList = _new _ArrayList<>();
// 为了提高代码的复用性,我们用方法来改进程序
// 调用带参的方法,添加几个就是几个集合 addStudent(arrayList);
addStudent(arrayList);
addStudent(arrayList);
// 遍历集合,采用通用便利格式实现,通过.get(int index)方法获取每个集合中的对象 for (_int _i = 0; i < arrayList.size(); i++) {
StudentArray studentArray = arrayList.get(i);
System._out
.println(studentArray.getName() + “,” + studentArray.getAge()); } }
/
使用方法需要用两个明确:
返回值类型:void
参数:ArrayList arrayList
/_private static void _addStudent(ArrayList arrayList) {
// 键盘录入学生对象所需要的数据 _Scanner scanner = _new _Scanner(System._in);
System.out.println(“请输入学生姓名:”);
String name = scanner.nextLine();
System.out.println(“请输入学生年龄:”);
String age = scanner.nextLine();
// 添创建学生对象,把键盘录入的数据给成员变量赋值(带参给set()方法赋值) StudentArray studentArray = _new _StudentArray();
studentArray.setName(name);
studentArray.setAge(age);
// 添加studentArray学生对象到arrayList集合中,使用.add()方法_ _arrayList.add(studentArray); }