目录
一、学习目标:
二、学习内容:
2.1集合基础
2.2 、ArrayList集合
2.3 ArrayList集合常用方法
2.4 集合基础
2.5 集合基础:存储学生对象并遍历
2.6 集合基础:键盘录入并遍历
2.7 集合基础:集合删除元素
2.8 集合基础:集合元素筛选
学习产出:
一、学习目标:
- 集合-ArrayList
二、学习内容:
2.1集合基础
2.1集合基础
对象数据
需求:将(张三,23)(李四,24)(王五,25)封装为3个学生对象并存入数组随后遍历数组,将学生信息输出在控制台
思路:
1.定义学生类准备用于封装数据
2.动态初始化长度为3的数组,类型为Student类型
3.根据需求创建3个学生对象
4.将学生对象存入数组
5.遍历数组,取出每一个学生对象
6.调用对象的getXxx方法获取学生信息,并输出在控制台上
先进行封装Student
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;
}
}
再编写基本数据
import com.itheima.domain.Student;
public class TestObjectArray {
public static void main(String[] args) {
Student[] arr = new Student[3];
Student stu1 = new Student("张三",23);
Student stu2 = new Student("李四",24);
Student stu3 = new Student("王五",25);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;
for (int i = 0; i < arr.length; i++) {
Student temp = arr[i];
System.out.println(temp.getName() +"..."+ temp.getAge());
}
}
}
集合与数组的数组对比
2.2 、ArrayList集合
public class Damo1ArrayList {
public static void main(String[] args) {
//创建集合容器对象
ArrayListlist = new ArrayList<>();
//调用对象add方法,向容器添加数据
list.add("111");
list.add("222");
list.add("333");
list.add("444");
list.add("555");
list.add(0,"666");
System.out.println(list);
}
}
public class Damo1ArrayList {
public static void main(String[] args) {
//创建集合容器对象
ArrayListlist = new ArrayList<>();
//调用对象add方法,向容器添加数据
list.add("111");
list.add("222");
list.add("333");
list.add("444");
list.add("555");
list.add(0,"666");
System.out.println(list);
}
}
ArrayList 添加方法
ArrayList 使用
2.3 ArrayList集合常用方法
import java.util.ArrayList;
public class Damo2ArrayList {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add("abc");
list.add("111");
list.add("222");
list.add("333");
list.add("444");
//public E get(int index) 返回指定索引处的元素
String s1 = list.get(0);
String s2 = list.get(1);
String s3 = list.get(2);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
//public int size()返回集合中的元素的个数
int size = list.size();
System.out.println(size);
}
private static void testSet() {
ArrayList list = new ArrayList<>();
list.add("abc");
list.add("111");
list.add("222");
list.add("333");
list.add("444");
//public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
String s = list.set(0,"666");
System.out.println(s);
System.out.println(list);
}
private static void testRemore(){
ArrayList list = new ArrayList<>();
list.add("abc");
list.add("111");
list.add("222");
list.add("333");
list.add("444");
//public boolean remove(Object 0) 删除指定元素,返回删除是否成功
boolean b1 = list.remove("abc");
boolean b2 = list.remove("zzz");
System.out.println(b1);
System.out.println(b2);
System.out.println(list);
//public E remove(int index) 删除指定索引的元素,返回被删除的元素
String s = list.remove(0);
System.out.println(s);
System.out.println(list);
}
}
2.4 集合基础
import java.util.ArrayList;
public class Test1 {
public static void main(String[] args) {
//创建集合对象
ArrayList list = new ArrayList<>();
//往集合添加字符串对象
list.add("张三");
list.add("李四");
list.add("王五");
//遍历集合
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.println(s);
}
}
}
2.5 集合基础:存储学生对象并遍历
需求:创建一个存储学生对象的集合,存储3个学生对象,实现程序实现在控制台遍历该集合
思路:
1.定义学生类
2.创建集合对象
3.创建学生对象
4.添加学生对象到集合中
5.遍历集合,采用通用遍历格式实现
import java.util.ArrayList;
public class Test2 {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
Student stu1 = new Student("张三1",23);
Student stu2 = new Student("张三2",23);
Student stu3 = new Student("张三3",23);
list.add(stu1);
list.add(stu2);
list.add(stu3);
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getName() + "...." + stu.getAge());
}
}
}
2.6 集合基础:键盘录入并遍历
import com.itheima.domain.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
//创建集合对象
ArrayList list = new ArrayList<>();
Student stu1 = getStudent();
Student stu2 = getStudent();
Student stu3 = getStudent();
//往集合添加学生对象
list.add(stu1);
list.add(stu2);
list.add(stu3);
//遍历集合,采用循环格式实现
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getName() +"..."+ stu.getAge());
}
}
private static Student getStudent() {
//键盘录入学生对象所需要的数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生姓名:");
//next() nextint();
String name = sc.next();
System.out.println("请输入学生年龄:");
int age = sc.nextInt();
//把键盘录入数据赋值给学生对象的成员变量
Student stu = new Student(name,age);
return stu;
}
}
2.7 集合基础:集合删除元素
import java.util.ArrayList;
public class Test4 {
//注意:根据元素进行删除,只能删除集合中的第一个元素
//list.remove("test")
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add("text");
list.add("张三");
list.add("李四");
list.add("text");
list.add("text");
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
//if(s.equals("text")){} 常量在前避免long类型空指针异常
if("text".equals(s)){
list.remove(i);
i--;完全删除
}
}
System.out.println(list);
}
}
2.8 集合基础:集合元素筛选
import com.itheima.domain.Student;
import java.util.ArrayList;
public class Test5 {
public static void main(String[] args) {
//main方法中测试该方法
ArrayList list = new ArrayList<>();
Student stu1 = new Student("张三1",10);
Student stu2 = new Student("张三2",10);
Student stu3 = new Student("张三3",20);
list.add(stu1);
list.add(stu2);
list.add(stu3);
ArrayList newlist = getlist(list);
for (int i = 0; i < list.size(); i++) {
Student stu = newlist.get(i);
System.out.println(stu.getName()+ "..." + stu.getAge());
}
}
//1.定义方法:方法形参定义为ArrayListList
public static ArrayList getlist(ArrayList list){
//2.方法内部定义一个新集合,准备存储筛选出学生对象ArrayList newlist
ArrayList newlist = new ArrayList<>();
//3.遍历原集合,获取每一个学生对象
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
//4.通过学生对象调用getAge方法获取年龄,并判断年龄是否低于18
int age = stu.getAge();
if(age < 18){
newlist.add(stu);
}
}
return newlist;
}
}



