对于ArrayList的第一个练习代码
package com.demo01;
import java.lang.reflect.Array;
import java.util.ArrayList;
public class bianLi {
public static void main(String[] args) {
//创建一个空数集
ArrayList<String> array = new ArrayList<String>();
//向集合中添加元素
array.add("郭芙蓉");
array.add("口头禅");
array.add("排山倒...");
array.add("白展堂");
array.add("口头禅");
array.add("葵花点...");
//遍历数集
for (int i = 0; i < array.size(); i++) {
String s = array.get(i);
System.out.println(s);
}
}
}
使用ArrayList筛选某种姓氏的名字
package com.demo01;
/*
需求:
删除以张开头的人名 ["张无忌", "张三丰", "张勇", "王子", "杨凯", "李硕", "薛仁贵", "马德彪", "张峰"]
适用方法
思路1:正向删除 每删除一个元素索引自动向前补位,连续两个以张开头的第二个元素刚好跳过 每删除一个元素需要i--解决
思路2:逆向删除 直接删除
*/
import java.util.ArrayList;
public class shuJuShanChu {
public static void main(String[] args) {
//创建集合,向集合中存值
ArrayList<String> array = new ArrayList<>();//右边<>内类型可写可不写
//存值
array.add("张无忌");
array.add("张三丰");
array.add("张勇");
array.add("王子");
array.add("杨凯");
array.add("李硕");
array.add("薛仁贵");
array.add("马德彪");
array.add("张峰");
//调用正向删除方法
//deleteName0(array);
//调用逆向删除方法
deleteName1(array);
}
//逆向删除
private static void deleteName1(ArrayList<String> array) {
//遍历数组判断条件
for (int i = array.size() - 1; i >= 0; i--) {
String s = array.get(i);
if (s.startsWith("张")) {
array.remove(s);
System.out.println(s + "被移除了...");
}
}
System.out.println("筛选后的名字有" + array);
}
//正向删除
public static void deleteName0(ArrayList<String> array) {
//遍历数组判断条件
for (int i = 0; i < array.size(); i++) {
String s = array.get(i);
if (s.startsWith("张")) {
array.remove(s);
i--;//避免连个需要筛选的漏掉
System.out.println(s + "被移除了...");
}
}
System.out.println("筛选后的名字有" + array);
}
}