目录
Java集合的基础知识
JavaArrayList成员方法
Java集合的练习
01-添加字符串并遍历
02-添加数字并遍历
03-添加学生对象并遍历1
04-添加学生对象并遍历2
Java集合的基础知识
JavaArrayList成员方法
在Java中,ArrayList
是一个可调整大小的数组实现,它属于 java.util
包。以下是 ArrayList
类中用于增删查改操作的一些常用方法:
-
增加元素:
add(E e)
: 将指定的元素添加到列表的末尾。add(int index, E element)
: 在列表的指定位置插入指定元素。
-
删除元素:
remove(Object o)
: 删除列表中出现的第一个指定元素(如果存在)。remove(int index)
: 删除列表中指定位置的元素。
-
查找元素:
get(int index)
: 返回列表中指定位置的元素。indexOf(Object o)
: 返回列表中指定元素的第一次出现的索引,如果列表不包含该元素,则返回 -1。lastIndexOf(Object o)
: 返回列表中指定元素的最后一次出现的索引,如果列表不包含该元素,则返回 -1。
-
修改元素:
set(int index, E element)
: 用指定元素替换列表中指定位置的元素。
-
列表大小和清空:
size()
: 返回列表中的元素数。isEmpty()
: 如果列表不包含元素,则返回true
。clear()
: 移除列表中的所有元素。
-
检查存在性:
contains(Object o)
: 如果列表包含指定的元素,则返回true
。
-
遍历列表:
- 使用迭代器
iterator()
: 返回列表中元素的迭代器,用于遍历。 - 使用增强
for
循环直接遍历ArrayList
。
- 使用迭代器
下面是一些使用这些方法的简单示例:
import java.util.ArrayList;public class ArrayListExample {public static void main(String[] args) {// 创建ArrayListArrayList<String> list = new ArrayList<>();// 增加元素list.add("Apple");list.add("Banana");list.add(1, "Grapes"); // 在索引1处添加元素// 查找元素String item = list.get(0); // 获取第一个元素int index = list.indexOf("Banana"); // 查找"Banana"的索引// 修改元素list.set(2, "Cherry"); // 将索引2的元素替换为"Cherry"// 删除元素list.remove("Apple"); // 删除"Apple"list.remove(0); // 删除索引0处的元素// 列表大小和清空int size = list.size(); // 获取列表大小boolean isEmpty = list.isEmpty(); // 检查列表是否为空list.clear(); // 清空列表// 遍历列表for (String fruit : list) {System.out.println(fruit);}}
}
请注意,ArrayList
是一个泛型类,这意味着你可以指定列表可以包含的元素类型,例如 ArrayList<String>
或 ArrayList<Integer>
。这样做有助于提供编译时类型安全,并减少运行时类型错误的可能性。
在Java中,每种基本数据类型都有一个对应的包装类。这些包装类属于java.lang包,它们的作用是将基本数据类型转换为对象,这样可以使用对象的方法和属性。下面是基本数据类型及其对应的包装类:
byte
:对应的包装类是Byte
short
:对应的包装类是Short
int
:对应的包装类是Integer
long
:对应的包装类是Long
float
:对应的包装类是Float
double
:对应的包装类是Double
char
:对应的包装类是Character
boolean
:对应的包装类是Boolean
包装类提供了一些有用的方法,如将字符串转换为相应的基本类型值,或者将基本类型值转换为字符串,以及其他一些实用的静态方法。例如,Integer类提供了parseInt
方法来将字符串转换为整数,Boolean类提供了parseBoolean
来解析字符串为布尔值。此外,包装类还实现了比较对象等功能。
Java集合的练习
01-添加字符串并遍历
package com.mohuanan.exercise;import java.util.ArrayList;public class Demo01 {public static void main(String[] args) {//1. 创建ArrayList集合的对象ArrayList<String> list1 = new ArrayList<>();for (int i = 0; i < 3; i++) {list1.add("aaa");}System.out.println(list1);//2. 遍历输出System.out.println("[");for (int i = 0; i < list1.size(); i++) {//最后一个元素if(i==list1.size()-1){System.out.println(list1.get(i));}else{System.out.println(list1.get(i)+",");}}System.out.println("]");}
}
02-添加数字并遍历
package com.mohuanan.exercise;import java.util.ArrayList;public class Demo02 {public static void main(String[] args) {//1. 创建ArrayList对象ArrayList<Integer> list = new ArrayList<>();//jdk1.5以后Integer和int是可以相互转化的list.add(123);list.add(1);list.add(666);//2. 遍历for (int i = 0; i < list.size(); i++) {int number = list.get(i);System.out.print(number+" ");}System.out.println();}
}
03-添加学生对象并遍历1
package com.mohuanan.student;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;}
}package com.mohuanan.student;import java.util.ArrayList;public class StudentTest {public static void main(String[] args) {//创建集合ArrayList<Student> list = new ArrayList<>();//创建Student对象Student s1 = new Student("莫华南",18);Student s2 = new Student("莫华棋",10);Student s3 = new Student("莫才兴",40);//添加元素list.add(s1);list.add(s2);list.add(s3);//输出的是地址System.out.println(list);//遍历输出for (int i = 0; i < list.size(); i++) {Student s = list.get(i);System.out.println(s.getName()+","+s.getAge());System.out.println(list.get(i).getName()+" "+list.get(i).getAge());}}
}
04-添加学生对象并遍历2
package com.mohuanan.student;import java.util.ArrayList;
import java.util.Scanner;public class StudentTest {public static void main(String[] args) {//创建集合ArrayList<Student> list = new ArrayList<>();//创建Student对象Scanner sc = new Scanner(System.in);//注意这里 要new一个空间出来//Student stu = new Student(); ****for (int i = 0; i < 3; i++) {Student stu = new Student(); //所以要把stu这句话写在这里 表示创建三个名字相同 的stu对象System.out.println("请分别输入第"+(i+1)+"个人的姓名和年龄(用空格隔开)");//stu = new Student(sc.next(),sc.nextInt());//或者String name = sc.next();int age = sc.nextInt();//赋值给Student对象的属性 (用set方法)stu.setName(name);stu.setAge(age);//添加元素//输出的结果/*sdf,100sdf 100sdf,100sdf 100sdf,100sdf 100*///如果使用第一种方法 集合里面存储的是**三个**(相同的)**地址**list.add(stu);}//输出的是地址System.out.println(list);//遍历输出for (int i = 0; i < list.size(); i++) {Student s = list.get(i);System.out.println(s.getName()+","+s.getAge());System.out.println(list.get(i).getName()+" "+list.get(i).getAge());}}
}