ArrayList
1.集合类中,最常用的类
2.使用的时候需要导包
3.格式:ArrayList<添加一个类型,比如String> arrl=new ArrayList();
添加元素功方法
//1.先创建对象
ArrayList<String> arrl = new ArrayList<String>();
//2.添加元素
arrl.add("2343dd");
arrl.add("dssww");
//注意,这个方法(数组索引,添加内容),原来的内容往后顺延一位
arrl.add(0, "qqq");
System.out.println(arrl);
结果=[qqq, 2343dd, dssww]
获取指定元素,返回长度,删除元素,修改元素
//1.创建集合类对象
ArrayList<String> arrl=new ArrayList<String>();
//2.增加元素
arrl.add("ni");
arrl.add("hao");
arrl.add("java");
System.out.println(arrl);
//3.返回指定的元素,结果返回hao
//arrl.get(1);
System.out.println(arrl.get(1));
//4.返回集合长度,结果返回3
//arrl.size();
System.out.println(arrl.size());
//5.删除指定元素,选择remove(int index)时remove(索引)结果返回被删除的元素:ni
//arrl.remove(0);
//System.out.println(arrl.remove(0));
//5.删除指定元素,选择remove(Object o)时remove("字符串")结果返回被删除的元素:turn或false
//System.out.println(arrl.remove("ni"));
//修改指定的元素,返回被修改的元素:ni
//arrl.set(0, "haha");
System.out.println(arrl.set(0, "haha"));
练习----获取满足要求的元素(从字符串数组中取出有指定姓氏的人)
//1.创建一个字符串数组
String[] s={"张三丰","张三","张无忌","三四单","第三方","冠军的风采"};
//2.创建一个集合类对象
ArrayList<String> arrl=new ArrayList<>();
//3.把字符串数组放到集合中
for(int a=0;a<s.length;a++){
arrl.add(s[a]);
}
//4.遍历集合中姓张的元素
for(int a=0;a<arrl.size();a++){
String ss=arrl.get(a);
if(ss.startsWith("张")){
System.out.println(ss);
}
}
练习----存储自定义对象并遍历
/*
* 1.先自定义一个类,以学生类为例
* 2.创建一个学生类对象
* 3.创建一个集合
* 4.把学生信息写入学生类
* 4.把学生类对象加入集合
* 5.遍历集合
*
*/
Test student=new Test();
ArrayList<Test> arrl=new ArrayList<Test>();
Test sutdent1=new Test("张三",24);
Test sutdent2=new Test("李四",19);
Test sutdent3=new Test("无极",18);
Test sutdent4=new Test("王珂",22);
arrl.add(sutdent1);
arrl.add(sutdent2);
arrl.add(sutdent3);
arrl.add(sutdent4);
for(int a=0;a<arrl.size();a++){
Test t=arrl.get(a);
System.out.println(t.getName()+"----"+t.getAge());
}
练习----键盘录入自定义对象并遍历(封装方法)
/*
* 1.先自定义一个类,以学生类为例,类中年龄类型改为String
* 2.创建一个学生类对象
* 3.创建一个集合
* 4.键盘录入学生信息,然后加入到学生类
* 4.把学生类对象加入集合
* 5.遍历集合
*
*/
public class TestDemo {
public static void main(String[] args) {
ArrayList<Test> arrl=new ArrayList<Test>();
bianLi(arrl);
bianLi(arrl);
bianLi(arrl);
for(int a=0;a<arrl.size();a++){
Test result=arrl.get(a);
System.out.println(result.getName()+"----"+result.getAge());
}
}
public static void bianLi(ArrayList<Test> arrl){
//1.初始化一下,新建一个对象
Test student=new Test();
//2.键盘输入姓名和年龄
Scanner sc=new Scanner(System.in);
System.out.println("输入姓名");
String s1=sc.nextLine();
System.out.println("输入年龄");
String s2=sc.nextLine();
//3.键盘录入的信息加入student对象的方法中
student.setName(s1);
student.setAge(s2);
arrl.add(student);
}
}
自定义类遍历时出现的问题