集合ArrayList

发布于:2024-12-08 ⋅ 阅读:(158) ⋅ 点赞:(0)

黑马程序员Java的个人笔记 

BV17F411T7Ao

p111~p115

目录

集合存储数据类型的特点

创建对象

ArrayList 成员方法

.add 增加元素

.remove 删除元素

.set 修改元素

.get 查询元素

.size 获取长度

基本数据类型对应的包装类

Character 

练习

返回多个数据


 

集合存储数据类型的特点

创建对象

<>中后面写个泛型(不能是基本数据类型),表示存储数据的类型

// 创建集合的对象
ArrayList<String> list = new ArrayList<>();

ArrayList 成员方法

.add 增加元素

  • 在 ArrayList 中不管添加什么,都能添加成功
  • 因为不管添加什么,都返回 true,所以直接使用方法本身的添加功能就行了
import java.util.ArrayList;
public class Demo1 {
    public static void main(String[] args) {
        // 创建集合的对象
        ArrayList<String> list = new ArrayList<>();

        boolean res = list.add("add");
        System.out.println(res); // true
        System.out.println(list); // [add]
    }
}
  •  直接使用方法添加
import java.util.ArrayList;
public class Demo1 {
    public static void main(String[] args) {
        // 创建集合的对象
        ArrayList<String> list = new ArrayList<>();

        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");
        System.out.println(list); // [aaa, bbb, ccc, ddd]
    }
}

.remove 删除元素

import java.util.ArrayList;
public class Demo1 {
    public static void main(String[] args) {
        // 创建集合的对象
        ArrayList<String> list = new ArrayList<>();

        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");

        System.out.println(list); // [aaa, bbb, ccc, ddd]
        
        // 直接删除元素
        list.remove("ddd");
        System.out.println(list); // [aaa, bbb, ccc]
        
        // 通过索引删除
        list.remove(1);
        System.out.println(list); // [aaa, ccc]
    }
}

.set 修改元素

import java.util.ArrayList;
public class Demo1 {
    public static void main(String[] args) {
        // 创建集合的对象
        ArrayList<String> list = new ArrayList<>();

        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");

        System.out.println(list); // [aaa, bbb, ccc, ddd]

        String res = list.set(1, "eee");
        System.out.println(res); // bbb,set方法会把被覆盖的元素返回
        System.out.println(list); // [aaa, eee, ccc, ddd]
    }
}

.get 查询元素

import java.util.ArrayList;
public class Demo1 {
    public static void main(String[] args) {
        // 创建集合的对象
        ArrayList<String> list = new ArrayList<>();

        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");

        System.out.println(list); // [aaa, bbb, ccc, ddd]

        // 查询元素
        String s = list.get(0);
        System.out.println(s); // aaa
    }
}

.size 获取长度

import java.util.ArrayList;
public class Demo1 {
    public static void main(String[] args) {
        // 创建集合的对象
        ArrayList<String> list = new ArrayList<>();

        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");

        System.out.println(list); // [aaa, bbb, ccc, ddd]
        
        // 获取长度 
        for (int i = 0; i < list.size(); i++) {
           String str = list.get(i);
            System.out.println(str); // 获取每个索引上的元素
        }
    }
}

基本数据类型对应的包装类

  • jdk5之后 int Integer 之间是可以互相转化的

Character 

import java.util.ArrayList;
public class Demo1 {
    public static void main(String[] args) {
        ArrayList<Character> list = new ArrayList<>();

        list.add('a');
        list.add('b');
        list.add('c');

        System.out.println(list); // [a, b, c]
    }
}

练习

返回多个数据

  • 返回多个数据,可以把这些数据先放到一个容器中(集合、数组),再把容器返回
// 没写javabean类
import java.util.ArrayList;

public class phoneTest {
    public static void main(String[] args) {

        // 创建集合对象
        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> 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> resList = new ArrayList<>();

        // 遍历集合
        for(int i = 0; i < list.size(); i++){
            Phone p = list.get(i);
            int price = p.getPrice();

            // 如果当前手机的价格低于3000,把对象添加到resList中
            if(price < 3000){
                resList.add(p);
            }
        }
        return resList;
    }
}