集合那些事

文章详细介绍了Java中ArrayList集合的使用,包括创建、添加、删除、修改和查询元素的操作。此外,还提到了基本数据类型需通过包装类来存储,并给出了存储基本数据类型和遍历的例子。最后,文章通过一个案例展示了如何存储自定义对象(如Phone)并筛选价格低于特定值的元素。
摘要由CSDN通过智能技术生成

集合ArrayList

一、集合出现的原因

同时存储多个元素,虽然数组同样能做到,但是数组的长度固定,而集合的长度可变,且自动扩容

二、数组和集合的区别

  • 数组

    • 可以存基本数据类型
    • 可以存引用数据类型
    • 长度固定
  • 集合

    • 不可以存基本数据类型
    • 可以存引用数据类型
    • 如果要存基本数据类型,则要将其包装成类
    • 长度可变且自动扩容

三、集合的创建

import java.util.ArrayList;

public class ArrayListDemo1 {
    public static void main(String[] args) {
        //1.创建集合对象
        //泛型:限定集合中存储数据的类型
        //ArrayList<String> list = new ArrayList<String>();
        //JDK7:

        //此时我们创建的是ArrayList的对象,而ArrayList是java已经写好的一个类
        //这个类在底层做了一些处理
        //打印对象不是地址值,而是集合中存储数据内容
        //在展示的时候会拿[]把所有的数据进行包裹
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);
    }
}

//运行结果:
/*
[]
*/
ArrayList成员方法

(增删改查)

import java.util.ArrayList;

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

        ArrayList<String> list = new ArrayList<>();

        //添加元素
        list.add("aaa");
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //删除元素
        boolean result1 = list.remove("aaa");
        System.out.println(result1);

        boolean result2 = list.remove("ddd");
        System.out.println(result2);

        String str = list.remove(2);
        System.out.println(str);

        //修改元素
        String result = list.set(1,"ddd");
        System.out.println(result);

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

        //遍历
        for(int i = 0 ; i < list.size() ; i++ )
        {
            String str2 = list.get(i);
            System.out.println(str2);
        }
        System.out.println(list);
    }
}
基本数据类型对应的包装类

四、案例

1.存储基本数据类型并遍历

import java.util.ArrayList;

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

        ArrayList<Integer> list = new ArrayList<>();

        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);

        System.out.print("[");
        for(int i = 0 ; i <list.size() ; i++ )
        {
            if(i == list.size() - 1)
            {
                System.out.print(list.get(i));
            }
            else
            {
                System.out.print(list.get(i) + ",");
            }
        }
        System.out.println("]");
    }
}

2.需求:

​ 定义Javabean类:Phone

​ Phone属性:品牌,价格

​ main方法中定义一个集合,存入三个手机对象。

​ 分别为:小米,1000。苹果,8000。锤子,2999;

​ 定义一个方法,将价格低于3000的手机信息返回

import java.util.ArrayList;

public class Test2 {
    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)
    {
        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;
    }
}
//运行结果:
/*
小米,1000
锤子,2999
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值