一、基本使用
1. 集合与数组
集合只存引用数据类型;长度可变
数组可存基本数据类型、引用数据类型;长度固定
2. 基本格式
ArrayList<String> list = new ArrayList<>();
3. 方法
增、删
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Hello"); // Adding strings to the list
list.add("World");
list.add("Java"); // Adding more strings
list.add("Python");
boolean result1 = list.remove("Hello"); // Removing "Hello"
System.out.println(result1);
System.out.println(list);
boolean result2 = list.remove("Word");
System.out.println(result2);
System.out.println(list);
String str = list.remove(0);
System.out.println(str);
System.out.println(list);
}
}
改、查
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Hello"); // Adding strings to the list
list.add("World");
list.add("Java"); // Adding more strings
list.add("Python");
//改
String result = list.set(0, "hi");
System.out.println(result);
System.out.println(list);
//查
String s = list.get(0);
System.out.println(s);
System.out.println("对集合进行遍历:");
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
System.out.println(str);
}
}
}
二、练习
1. 集合的遍历方式
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("他"); // Adding strings to the list
list.add("是");
list.add("笨"); // Adding more strings
list.add("蛋");
System.out.print("[");
for (int i = 0; i < list.size(); i++) {
if(i == list.size() - 1) {
System.out.print(list.get(i));
}else{
System.out.print(list.get(i) + ", ");
}
}
System.out.print("]");
}
}
2. 添加数字并遍历
基本数据类型对应的包装类
byte | Byte |
short | Short |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
int | Integer |
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.print("[");
for (int i = 0; i < list.size(); i++) {
if(i == list.size() - 1) {
System.out.print(list.get(i));
}else{
System.out.print(list.get(i) + ", ");
}
}
System.out.print("]");
}
}
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
ArrayList<Character> list = new ArrayList<>();
list.add('a');
list.add('b');
list.add('c');
list.add('d');
System.out.print("[");
for (int i = 0; i < list.size(); i++) {
if(i == list.size() - 1) {
System.out.print(list.get(i));
}else{
System.out.print(list.get(i) + ", ");
}
}
System.out.print("]");
}
}
3. 添加学生对象并遍历
指定学生对象
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Student s1 = new Student("张三", 18);
Student s2 = new Student("李四", 19);
Student s3 = new Student("王五", 20);
Student s4 = new Student("赵六", 21);
Student s5 = new Student("钱七", 22);
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
for (int i = 0; i < list.size(); i++) {
Student str = list.get(i);
System.out.println(str.getName() + " " + str.getAge());
}
}
}
键盘录入学生对象
import java.util.ArrayList;
import java.util.Scanner;
public class StringDemo {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
Student s = new Student();
System.out.println("Enter student name: ");
s.setName(sc.next());
System.out.println("Enter student age: ");
s.setAge(sc.nextInt());
list.add(s);
}
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName()+"\t"+list.get(i).getAge());
}
}
}
4. 添加用户对象并判断是否存在
返回true或false,返回索引
public class User {
private String id;
private String username;
private String password;
public User() {
}
public User(String id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
ArrayList<User> list = new ArrayList<>();
User u1 = new User("001", "张三", "123456"); // 创建用户对象
User u2 = new User("002", "李四", "654321");
User u3 = new User("003", "王五", "123fjie");
list.add(u1); // 将用户对象添加到集合中
list.add(u2);
list.add(u3);
int index = getIndex(list, "003"); // 调用contains方法判断集合中是否包含指定ID的用户
System.out.println(index); // 输出结果 2
System.out.println(contains(list, "003")); // 输出结果 true
}
public static int getIndex(ArrayList<User> list, String id) {
for (int i = 0; i < list.size(); i++) {
User u = list.get(i); // 获取集合中的每个用户对象
if (u.getId().equals(id)) { // 判断用户ID是否与输入的ID匹配
return i;
}
}
return -1;
}
public static boolean contains(ArrayList<User> list, String id) {
return getIndex(list, id) != -1;
}
}
4. 返回多个数据
有两个方法,一个是视频里的,一个是我写的
import java.util.ArrayList;
public class StringDemo {
public static void main(String[] args) {
ArrayList<Phone> list = new ArrayList<>();
Phone p1 = new Phone("VIVO", 1000); // 创建用户对象
Phone p2 = new Phone("oppo", 8000);
Phone p3 = new Phone("三星", 2999);
list.add(p1); // 将用户对象添加到集合中
list.add(p2);
list.add(p3);
ArrayList<Phone> newList = getPhoneInfo(list);
for(int i = 0; i<newList.size(); i++){
System.out.println(newList.get(i).getBrand() + " " + newList.get(i).getPrice());
}
System.out.println("=========================");
getPhoneInfo_myself(list);
}
public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list) {
ArrayList<Phone> newList = new ArrayList<>(); // 创建一个新的集合用于存储符合条件的用户
for (int i = 0; i < list.size(); i++) {
Phone p = list.get(i); // 获取集合中的每个用户对象
if (p.getPrice()<3000) { // 判断用户ID是否与输入的ID匹配
newList.add(p); // 如果匹配,则将该用户对象添加到新集合中
} // 如果不匹配,则继续循环
} // 循环结束后,返回新集合
return newList;
}
public static void getPhoneInfo_myself(ArrayList<Phone> list) {
for (int i = 0; i < list.size(); i++) {
Phone p = list.get(i); // 获取集合中的每个用户对象
if (p.getPrice()<3000) { // 判断用户ID是否与输入的ID匹配
System.out.println(p.getBrand() + " " + p.getPrice());
}
}
}
}