代码:
//1.创建集合的对象
//泛型:限定集合中存储数据的类型
// ArrayList<string>list = new ArrayList<string>();
// JDK7:
//此时我们创建的是ArrayList的对象,而ArrayList是java已经写好的一个类
// 这个类在底层做了一些处理
// 打印对象不是地址值,而是集合中存储数据内容
// 在展示的时候会拿[]把所有的数据进行包裹
ArrayList<String> list = new ArrayList<>();
System.out.println(list);
增删改查:
package ArrayList;
import java.util.ArrayList;
public class demo2 {
public static void main(String[] args) {
//实现增删改查
ArrayList<String> list = new ArrayList<>();
//增加,返回值是boolean
list.add("aaa");
list.add("bbb");
list.add("ccc");
System.out.println(list);
//删除
//方法一,返回值是boolean
list.remove("aaa");
System.out.println(list);
//方法二,返回值是被删除的值
String s = list.remove(0);
System.out.println(s);
System.out.println(list);
//修改
list.set(0,"asd");
System.out.println(list);
//查询元素
String s1 = list.get(0);
System.out.println(s1);
//获取集合长度
int length = list.size();
System.out.println(length);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
练习1:
代码描述:该函数的功能是将一个字符串数组通过循环遍历的方式,以特定格式打印出来。
package ArrayList;
import java.util.ArrayList;
public class demo3 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("asd");
list.add("fgh");
list.add("jkl");
list.add("qwe");
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.println("]");
}
}
练习2:
代码描述:通过调用find()方法,从一个ArrayList中筛选出价格低于等于3000的手机对象,并将筛选结果存储到另一个ArrayList中,最后打印出筛选结果的手机品牌和价格。
Phone类的定义:
package ArrayList;
import java.util.ArrayList;
public class PhoneTest {
public static void main(String[] args) {
// 创建Phone的ArrayList集合
ArrayList<Phone> list = new ArrayList<>();
Phone p1 = new Phone("小米", 1000);
Phone p2 = new Phone("华为", 8000);
Phone p3 = new Phone("锤子", 2999);
list.add(p1);
list.add(p2);
list.add(p3);
ArrayList<Phone> end = find(list);
for (int i = 0; i < end.size(); i++) {
System.out.println(end.get(i).getBrand() + " " + end.get(i).getPrice());
}
}
public static ArrayList<Phone> find(ArrayList<Phone> list) {
ArrayList temp = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getPrice() <= 3000) {
temp.add(list.get(i));
}
}
return temp;
}
}
练习3:
代码描述:通过用户输入,动态创建并存储学生的姓名和年龄信息到一个ArrayList中,并遍历输出所有学生的姓名和年龄。
Student类定义:
package ArrayList;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentTest {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要录入学生信息个数:");
int count = sc.nextInt();
for (int i = 0; i < count; i++) {
System.out.println("请输入姓名:");
String name = sc.next();
System.out.println("请输入年龄:");
int age = sc.nextInt();
Student stu1 = new Student(name, age);
list.add(stu1);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName() + " " + list.get(i).getAge());
}
}
}
练习3:
该函数主要实现以下功能:
创建一个用户列表并初始化三个用户对象。通过用户输入的ID,在用户列表中查找用户。如果找到用户,则输出该用户的索引;如果未找到用户,则输出提示信息"该用户不存在"。其中,函数getIndex(list, input)用于在用户列表中查找输入ID对应的用户的索引,返回索引值;函数find(list, input)用于判断用户列表中是否存在输入ID的用户,返回布尔值。
User类:
package ArrayList;
import java.util.ArrayList;
import java.util.Scanner;
public class UserTest {
public static void main(String[] args) {
ArrayList<User> list = new ArrayList<>();
User u1 = new User("001", "Sunhsine", "123456");
User u2 = new User("002", "九色鹿", "234567");
User u3 = new User("003", "露露水", "345678");
list.add(u1);
list.add(u2);
list.add(u3);
Scanner sc = new Scanner(System.in);
System.out.println("请输入ID:");
String input = sc.next();
int index = getIndex(list, input);
boolean flag = find(list, input);
if (flag) {
System.out.println("当前用户索引:" + index);
} else {
System.out.println("该用户不存在");
}
}
public static boolean find(ArrayList<User> list, String input) {
return getIndex(list, input) >= 0 ? true : false;
}
public static int getIndex(ArrayList<User> list, String input) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId().equals(input)) {
return i;
}
}
return -1;
}
}