import java.util.ArrayList;
public class ArrayListDemo1 {
public static void main(String[] args) {
//1.创建集合对象
//泛型:限定集合中存储数据的类型
//ArrayList list = new ArrayList();
// JDK7之后的写法
ArrayList<String> list = new ArrayList<>();
//ArrayList是java已经写好的类
//在底层做了一层封装,打印时不是地址值,而是集合中存储的数据内容
//在展示的时候会拿[]把所有的数据进行包裹
System.out.println(list);
}
}


package listdemo;
import java.util.ArrayList;
public class ArrayListDemo2 {
public static void main(String[] args) {
ArrayList <String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
//遍历
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
System.out.println(str);
}
boolean result = list.remove("aaa");
System.out.println(result);
String reslut1 = list.set(2,"eee");
System.out.println(list);
}
}
1)

package listdemo;
import java.util.ArrayList;
import java.util.Scanner;
public class test02 {
public static void main(String[] args) {
//创建集合
ArrayList<Student> list = new ArrayList<>();
//键盘录入学生信息
Scanner sc = new Scanner(System.in);
//for (int i = 0; i < list.size(); i++) { //此刻 list.size() = 0,不会进入循环创建对象
for (int i = 0; i < 3; i++) {
Student stu = new Student();
System.out.println("请输入名字");
String name = sc.next();
System.out.println("请输入年龄");
int age = sc.nextInt();
//把name 和 age赋值给学生对象
stu.setAge(age);
stu.setName(name);
list.add(stu);
}
System.out.println(list);
//遍历集合
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getName() + "," + stu.getAge());
}
}
}


若创建对象student 写在循环外面

原因:

2)
需求:
package listdemo;
import java.util.ArrayList;
public class test03 {
public static void main(String[] args) {
//创建集合
ArrayList<User> list = new ArrayList<>();
//创建对象
User u1 = new User("001","zhangsan","123456");
User u2 = new User("002","lisi","12345678");
User u3= new User("003","wamgwu","1234qwer");
//把用户对象添加到集合中
list.add(u1);
list.add(u2);
list.add(u3);
//调用方法查看id是否存在
boolean flag = contains(list,"002");
System.out.println(flag);
//查找索引
int index = getIndex(list,"003");
System.out.println(index);
}
public static boolean contains(ArrayList<User> list ,String id){
for (int i = 0; i < list.size(); i++) {
User u = list.get(i);
String uid = u.getId();
if (uid.equals(id)){
return true;
}
}
return false;
}
public static int getIndex(ArrayList<User> list,String id){
for (int i = 0; i < list.size(); i++) {
User u = list.get(i);
String uid = u.getId();
if (uid.equals(id)){
return i;
}
}
return -1;
}
}
3)

package listdemo;
import java.util.ArrayList;
public class test04 {
public static void main(String[] args) {
//1.创建集合对象
ArrayList<Phone> list =new ArrayList<>();
//2.创建手机对象
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> phoneInfoList = getPhoneInfo(list);
for (int i = 0; i < phoneInfoList.size(); i++) {
Phone phone = phoneInfoList.get(i);
System.out.println(phone.getBrand() + "," + phone.getPrice());
}
}
//技巧:
//如果返回的数据比较多,可以把这些数据先放到一个容器中,再把容器返回
//集合 数组等
public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list){
//定义一个集合,用于储存价格低于3000的手机对象
ArrayList<Phone> resultList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Phone p = list.get(i);
int price = p.getPrice();
if (price < 3000){
resultList.add(p);
}
}
return resultList;
}
}


