


集合和数组的优势对比:
长度可变
添加数据的时候不需要考虑索引,默认将数据添加到末尾

- package com.itheima;
-
- import java.util.ArrayList;
-
- /*public boolean add(要添加的元素) | 将指定的元素追加到此集合的末尾 |
- | public boolean remove(要删除的元素) | 删除指定元素,返回值表示是否删除成功
- | public E remove(int index) | 删除指定索引处的元素,返回被删除的元素
- | public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素
- | public E get(int index) | 返回指定索引处的元素
- | public int size() | 返回集合中的元素的个数
- */
- public class ArrayListDemo2 {
- public static void main(String[] args) {
- //1.创建一个集合对象
- ArrayList
list = new ArrayList(); - //2.添加元素
- list.add("aaa");
- list.add("bbb");
- list.add("ccc");
- list.add("ddd");
- //3.删除元素
- boolean result = list.remove("aaa");
- System.out.println(list);
- //删除失败返回flast
- //根据索引删除元素,返回被删除的元素
- String str = list.remove(2);
- System.out.println(str);
- System.out.println(list);
- //4.修该元素
- String str2 = list.set(0, "aaa");
- System.out.println(str2);//返回被覆盖的元素
- System.out.println(list);
- //5.查寻元素
- String str3 = list.get(0);
- System.out.println(str3);//返回指定索引处的元素
- System.out.println(list);
-
- //6.遍历集合
- for (int i = 0; i < list.size(); i++) {
- //list.get(i)元素
- System.out.println(list.get(i));
- }
- }
- }

- package com.itheima;
- import java.util.ArrayList;
- import java.util.List;
- //定义一个方法,讲价格低于3000的手机信息打印出啦
- public class PhoneTest {
- public static void main(String[] args) {
- //1.创建集合
- ArrayList
list = new ArrayList(); - //2.创建对象
- Phone p1 = new Phone("苹果",1000);
- Phone p2 = new Phone("小米",2200);
- Phone p3 = new Phone("锤子",3200);
- //3.添加数据
- list.add(p1);
- list.add(p2);
- list.add(p3);
-
- //4.调用方法
- ArrayList
phoneInfolist = getPhoneInfo(list); -
- //5.遍历集合
- for (int i = 0; i < phoneInfolist.size(); i++) {
- Phone p = phoneInfolist.get(i);
- System.out.println(p.getBrand()+" "+p.getPrice());
- }
-
- }
- //如果说我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回
- //集合,数组
- public static ArrayList
getPhoneInfo( ArrayList list ) { - ArrayList
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);//手机对象p存再集合resultlist里
- }
- }
- return resultlist;
- }
- }

- package com.itheima;
- import java.util.ArrayList;
-
- public class ArrayListDemo7Case {
- public static void main(String[] args) {
- //1.创建集合
- ArrayList
list = new ArrayList(); - //2.创建三个用户对象
- User u1=new User("001","zhngsan","123");
- User u2=new User("002","li","456");
- User u3=new User("003","zhngsan","789");
- //3.添加元素
- list.add(u1);
- list.add(u2);
- list.add(u3);
- //4.调用方法看id是否存在
- int flag = contains(list, "002");
- if(flag>=0){
- User u = list.get(flag);
- System.out.println(u.getId());
- }else{
- System.out.println("不存在");
- }
-
- }
- public static int contains(ArrayList
list,String id) { - for (int i = 0; i < list.size(); i++) {
- if(list.get(i).getId().equals(id)){
- return i;
- }
- }
- return -1;
- }
- }

- package com.itheima;
-
- import java.util.ArrayList;
- import java.util.Scanner;
-
- public class ArrayListDemo6 {
- public static void main(String[] args) {
- //1.创建集合
- ArrayList
list=new ArrayList<>(); - //长度为0
- //2.键盘录入学生的信息并添加到集合当中
- Scanner sc=new Scanner(System.in);
- for(int i=0;i<3;i++){
- Student s=new Student();
- System.out.println("请输入学生姓名");
- String name=sc.next();
- System.out.println("请输入学生的年龄");
- int age=sc.nextInt();
- //把name和age赋值给学生对象
- s.setName(name);
- s.setAge(age);
- //把学生对象添加在集合中
- list.add(s);
- }
- //遍历集合
- for (int i = 0; i < list.size(); i++) {
- Student stu=list.get(i);
- System.out.println(stu.getName()+" "+stu.getAge());
- }
- }
- }
/如果说我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回
//集合,数组
- package com.itheima;
- import java.util.ArrayList;
- import java.util.List;
- //定义一个方法,讲价格低于3000的手机信息打印出啦
- public class PhoneTest {
- public static void main(String[] args) {
- //1.创建集合
- ArrayList
list = new ArrayList(); - //2.创建对象
- Phone p1 = new Phone("苹果",1000);
- Phone p2 = new Phone("小米",2200);
- Phone p3 = new Phone("锤子",3200);
- //3.添加数据
- list.add(p1);
- list.add(p2);
- list.add(p3);
-
- //4.调用方法
- ArrayList
phoneInfolist = getPhoneInfo(list); -
- //5.遍历集合
- for (int i = 0; i < phoneInfolist.size(); i++) {
- Phone p = phoneInfolist.get(i);
- System.out.println(p.getBrand()+" "+p.getPrice());
- }
-
- }
- //如果说我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回
- //集合,数组
- public static ArrayList
getPhoneInfo( ArrayList list ) { - ArrayList
resultlist=new ArrayList<>(); - for (int i = 0; i < list.size(); i++) {
- Phone p = list.get(i);
- int price = p.getPrice();
- if(price<3000){//如果当前手机的价格低于3000,那么就把手机对象添加在resultlist当中
- resultlist.add(p);//手机对象p存再集合resultlist里
- }
- }
- return resultlist;
- }
- }