需求:创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合
1.创建集合对象 2.在集合中添加字符对象 3.遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现 4.遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
import java.util.ArrayList;
public class 存储字符串并遍历 {
// 需求:创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合
// 思路:
// 1.创建集合对象
// 2.在集合中添加字符对象
// 3.遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
// 4.遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
public static void main(String[] args) {
// 1.创建集合对象
ArrayList list=new ArrayList<>();
// 2.在集合中添加字符对象
list.add("张三");
list.add("李四");
list.add("王五");
// 3.遍历集合
for (int i = 0; i < list.size(); i++) {
String s =list.get(i);
System.out.println(s);
}
}
}
ArrayList list=new ArrayList<>();
list.add("张三");
for (int i = 0; i < list.size(); i++) {
String s =list.get(i);
System.out.println(s);
}
i 表示的是索引值,取出来的是字符串,用一个字符类型对象接收
需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
1.定义学生类 2.创建集合对象 3.创建学生对象 4.添加学生对象到集合中 5.遍历集合,采用通用的遍历格式实现
import domain.Student;
import java.util.ArrayList;
public class 存储学生对象并遍历 {
// 1.定义学生类
// 2.创建集合对象
// 3.创建学生对象
// 4.添加学生对象到集合中
// 5.遍历集合,采用通用的遍历格式实现
public static void main(String[] args) {
//1.定义学生类
//之前已经在domain包里创建好Student类了,这里直接调用
//2.创建集合对象
ArrayList list=new ArrayList<>();
//3.创建学生对象
Student stu1=new Student("张三1",23);
Student stu2=new Student("张三2",23);
Student stu3=new Student("张三3",23);
//4.添加学生对象到集合中
list.add(stu1);
list.add(stu2);
list.add(stu3);
//5.遍历集合,采用通用的遍历格式实现
for (int i = 0; i < list.size(); i++) {
Student stu =list.get(i);
System.out.println(stu);
System.out.println(stu.getName()+" "+stu.getAge());
}
}
}
package domain;
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student() {
}
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;
}
}
//5.遍历集合,采用通用的遍历格式实现
for (int i = 0; i < list.size(); i++) {
Student stu =list.get(i);
System.out.println(stu);
System.out.println(stu.getName()+" "+stu.getAge());
}
直接打印stu,得到的是学生对象的地址,而不是学生对象,需要进行调用,如以下结果
需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合 学生的姓名和年龄来自于键盘录入
1.定义学生类 2.创建集合对象 3.键盘录入学生对象所需要的数据 4.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 5.往集合中添加学生对象 6.遍历集合,采用通用遍历格式实现
import domain.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class 键盘录入学生对象到集合 {
// 需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
// 学生的姓名和年龄来自于键盘录入
// 思路
// 1.定义学生类
// 2.创建集合对象
// 3.键盘录入学生对象所需要的数据
// 4.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
// 5.往集合中添加学生对象
// 6.遍历集合,采用通用遍历格式实现
public static void main(String[] args) {
//2.创建集合对象
ArrayList list=new ArrayList<>();
Student stu1 = getStudent();
Student stu2 = getStudent();
Student stu3 = getStudent();
//5.往集合中添加学生对象
list.add(stu1);
list.add(stu2);
list.add(stu3);
//6.遍历集合,采用通用遍历格式实现
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);
System.out.println(stu.getName()+" "+stu.getAge());
}
}
// 选取好代码块,然后ctrl+alt+M,构成新的方法
private static Student getStudent() {
//3.键盘录入学生对象所需要的数据
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生姓名");
//next() nextInt()
String name =sc.next();
System.out.println("请输入学生年龄");
int age=sc.nextInt();
//4.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
Student stu =new Student(name,age);
return stu;
}
}
选取好代码块,然后ctrl+alt+M,构成新的方法
注意 返回的stu是Student类型,自动生成的方法是void,需要修改
需求:创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串 删除所有的test字符串,删除后,将集合剩余元素打印在控制台
1.创建集合对象 2.调用add方法,添加字符串 3.遍历集合,取出每一个字符串元素 4.加入if判断,如果是test字符串,调用remove方法删除 5.打印集合元素
import java.util.ArrayList;
public class 集合删除元素 {
// 需求:创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串
// 删除所有的test字符串,删除后,将集合剩余元素打印在控制台
//思路
// 1.创建集合对象
// 2.调用add方法,添加字符串
// 3.遍历集合,取出每一个字符串元素
// 4.加入if判断,如果是test字符串,调用remove方法删除
// 5.打印集合元素
public static void main(String[] args) {
//1.创建集合对象
ArrayList list=new ArrayList<>();
//2.调用add方法,添加字符串
list.add("test");
list.add("张三");
list.add("李四");
list.add("test");
list.add("test");
//list.remove("test");//根据元素进行删除的方式,只能删除集合中的第一个元素
//3.遍历集合,取出每一个字符串元素
for (int i = 0; i < list.size(); i++) {
String s=list.get(i);
//4.加入if判断,如果是test字符串,调用remove方法删除
if("test".equals(s)){
//用常量字符串去调用方法,避免空指针异常的情况
list.remove(i);
i--;
}
}
System.out.println(list);
}
}
在集合中,删除完一个元素,后面的元素会自动往前补上,如果只是i++,就会遗漏掉一些数据的检验,所以需要 i-- 来退回去一个,再次进行检验
定义一个方法,方法接收一个集合对象(泛型为Student),方法内部将年龄低于18的学生对象 找出并存入新集合对象,方法返回新集合
1.定义方法,方法的形参定义为ArrayListlist 2.方法内部定义新集合,准备用于存储筛选出的学生对象ArrayList newlist 3.遍历原集合,获取每一个学生对象 4.通过学生对象调用getAge()方法获取年龄,并判断年龄是否低于18 5.将年龄低于18的学生对象存入新集合 6.返回新集合 7.main方法中测试该方法
import domain.Student;
import java.util.ArrayList;
public class 集合数据筛选 {
//需求:定义一个方法,方法接收一个集合对象(泛型为Student),方法内部将年龄低于18的学生对象
//找出并存入新集合对象,方法返回新集合
//思路
//1.定义方法,方法的形参定义为ArrayList list
//2.方法内部定义新集合,准备用于存储筛选出的学生对象ArrayList newlist
//3.遍历原集合,获取每一个学生对象
//4.通过学生对象调用getAge()方法获取年龄,并判断年龄是否低于18
//5.将年龄低于18的学生对象存入新集合
//6.返回新集合
//7.main方法中测试该方法
public static void main(String[] args) {
//7.main方法中测试该方法
ArrayList list=new ArrayList<>();
Student stu1=new Student("张三1",10);
Student stu2=new Student("张三2",14);
Student stu3=new Student("张三3",20);
list.add(stu1);
list.add(stu2);
list.add(stu3);
ArrayList newlist=getList(list);
for (int i = 0; i < newlist.size(); i++) {
Student stu = newlist.get(i);
System.out.println(stu.getName()+" "+stu.getAge());
}
}
//1.定义方法,方法的形参定义为ArrayList list
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){
//5.将年龄低于18的学生对象存入新集合
newlist.add(stu);
}
}
//6.返回新集合
return newlist;
}
}
public static ArrayList getList(ArrayList list)
ArrayList newlist=new ArrayList<>();
return newlist;