需求: 创建一个存储字符串的集合,内部存储3个字符串元素,使用程序实现在控制台遍历该操作
private static void diyi() {
ArrayList<String> 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);
}
}
运行结果
张三
李四
王五
需求: 创建一个存储字符串的集合,内部存储字符串元素
钢门吹雪,西域狂鸭,张三,甄妮玛戴妗,李四
使用程序实现在控制台遍历该操作集合,将4个字的人名,打印在控制台
private static void dier() {
//第二种案例
ArrayList<String> list = new ArrayList();
list.add("钢门吹雪");
list.add("西域狂鸭");
list.add("张三");
list.add("甄妮玛戴妗");
list.add("李四");
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
if (s.length()==4){
System.out.println(s);
}
}
}
运行结果
钢门吹雪
西域狂鸭
需求: 创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
//在控制台,展示出年龄低于18岁的学生信息
public static void main(String[] args) {
Student stu1=new Student("张三",23);
Student stu2=new Student("李四",15);
Student stu3=new Student("王五",14);
AbstractList<Student> list = new ArrayList();
//把对象放进Student集合容器中
list.add(stu1);
list.add(stu2);
list.add(stu3);
//遍历,获取集合中所有元素
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if (s.getAge()<18){
System.out.println(s.getName()+"---"+s.getAge());
}
}
运行结果
李四—15
王五—14
集合的遍历
需求: 创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
学生的姓名年龄来自键盘录入
public static void main(String[] args) {
//1.准备集合容器,用于存储学生对象
AbstractList<Student> list = new ArrayList();
for (int i = 1; i <=3 ; i++) {
System.out.println("请输入第"+i+"个数据");
extracted(list);
}
//遍历,获取集合中所有元素,打印学生信息
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println(s.getName()+"---"+s.getAge());
}
}
private static void extracted(AbstractList<Student> list) {
//2.键盘录入学生信息
Scanner sc =new Scanner(System.in);
System.out.println("请输入你的姓名");
String s1 = sc.next();
System.out.println("请输入你的年龄");
int i1 = sc.nextInt();
//3.将键盘录入的学生信息,封装为学生对象
Student stu1 = new Student(s1,i1);
//4.将封装好的学生对象,存入集合
list.add(stu1);
}
运行结果
请输入第1个数据
请输入你的姓名
张三
请输入你的年龄
20
请输入第2个数据
请输入你的姓名
李四
请输入你的年龄
30
请输入第3个数据
请输入你的姓名
王五
请输入你的年龄
22
张三—20
李四—30
王五—22
索引删除
需求:创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串
删除所有的test字符串,删除后,将集合剩余元素打印在控制台
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
if ("test".equals(s)){
list.remove(i); //根据索引删除
i--;
}
}
总结: 在遍历集合的过程中,有删除操作
1.正序遍历:不要忘记 -- 操作
2.倒序遍历 :不需要 --操作
public static void main(String[] args) {
AbstractList<String> list =new ArrayList();
list.add("test");
list.add("张三");
list.add("李四");
list.add("test");
list.add("test");
//第一种方法
/*for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
if ("test".equals(s)){
list.remove(i); //根据索引删除
i--;
}
}*/
//第二种方法
for(int i=list.size()-1;i>=0;i--){
String s = list.get(i);
if ("test".equals(s)){
list.remove(i);
}
}
System.out.println(list);
}
运行结果
[张三, 李四]
需求:定义一个方法,方法接收一个集合对象(泛型为Student)
方法内部将年龄低于18岁的学生对象找出
并存入新集合对象,方法返回新集合
public static void main(String[] args) {
AbstractList<Student> list=new ArrayList<>();
list.add(new Student("张三",20));
list.add(new Student("李四",15));
list.add(new Student("王五",12));
//许愿法
AbstractList<Student> newlist =xuyuan(list);
for (int i = 0; i < newlist.size(); i++) {
Student s1 = newlist.get(i);
System.out.println(s1.getName()+"---"+s1.getAge());
}
}
private static AbstractList<Student> xuyuan(AbstractList<Student> list) {
//1.创建新的集合容器,准备存储筛选后的学生对象
AbstractList<Student> newlist=new ArrayList<>();
//2.遍历原集合
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
//3.筛选(判断)
if (s.getAge()<18){
//4.将满足要求的学生对象,存入新集合
newlist.add(s);
}
}
return newlist;
}
运行结果
李四—15
王五—12