目录
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) {
// 创建ArrayList
ArrayList<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,100
sdf 100
sdf,100
sdf 100
sdf,100
sdf 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());
}
}
}