• 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集合底层原理

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

  • 相关阅读:
    C++核心编程类的总结封装案例
    QT+OSG/osgEarth编译之五十一:osgShadow+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5工具库osgShadow)
    LinkedList源码解析及队列和栈相关分析
    adb 查找应用包名,应用 Activity 等信息
    弘辽科技:抖音,正在抛弃张同学
    三国志14信息查询小程序(历史武将信息一览)制作更新过程05-后台接口的编写及调用
    【广州华锐互动】动物内脏3D模型素材库提供更加丰富的学习资源,提高教学效果
    idea安装与配置【包含了idea中每一个英文字母的翻译和使用方法】
    【数据库MongoDB】MongoDB与大数据关系以及MongoDB中重要的进程:mongod进程与mongo进程关系
    【C++学习笔记】野指针的定义与避免
  • 原文地址:https://blog.csdn.net/u014217137/article/details/127651295