• 18.基本数据类型对应的包装类


    1. 创建

    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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述

    2.ArrayList常用成员方法

    在这里插入图片描述

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    3. 练习

    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());
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    在这里插入图片描述
    在这里插入图片描述


    • 注意避坑点

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

    在这里插入图片描述
    原因:
    在这里插入图片描述


    2)

    需求:

    • 1.main 方法中定义一个集合,存入3个用户对象。
      用户属性为:ID,uesrname,password
    • 2.要求:定义一个方法,根据ID查找对应的用户信息
      如果存在,返回索引
      如果不存在,返回-1
    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;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    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;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    在这里插入图片描述

    4. ArrayList集合底层原理

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    dpdk 内存管理 原理剖析
    【c语言】100行代码搞定电子琴
    Java Tomcat内存马——Listener内存马
    spring自定义异常处理,前端接收抛出结果
    STM32 使用内部晶振导致 Can 通讯异常
    TADHE车灯专用修复UV胶--汽车灯罩修复领域之光
    【2023最新美团笔试题目分析】“求最多出现数字及次数“、坦克大战在线对战游戏(问题描述 + 示例代码 + 时间复杂度分析)
    【项目实战】自主实现 HTTP 项目(五)——返回静态网页
    Golang make 与 new 函数的区别
    【基本算法题-2022.7.27】5. 递归实现指数型枚举
  • 原文地址:https://blog.csdn.net/u014217137/article/details/127651295