一篇文章带您了解java的ArrayList

1 什么是集合?

集合是一种容器,用来装数据的,类似于数组。

2 那既然有了数组,为什么还要有集合?

数组定义完毕并且启动项目后,长度就固定了。

集合大小可变,开发中用的就会更加多。

3 如何创建一个ArrayList集合对象

ArrayList是集合中最常用的一种,ArrayList是泛型类,可以约束存储的数据类型

创建对象,调用无参数构造器初始化对象。

//创建一个ArrayList的集合对象
 ArrayList list = new ArrayList();

4.ArrayList的常用方法

常用方法名说明
public boolean add(E e)将指定的元素添加到此集合的末尾
public void add(int index , Element)在此集合中的指定位置插入指定的元素
public E get(int index)返回指定索引处的元素
public int size()返回集合中的元素的个数
public E remove(int index)删除指定索引处的元素吗,返回被删除的元素
public boolean remove (Object o)删除指定的元素,返回删除是否成功
public E set(int index , E element)修改指定索引的元素

5.添加元素add

package com.web.arrayList;

import java.util.ArrayList;

public class Demo1 {
    public static void main(String[] args) {
        //创建一个ArrayList的集合对象
        ArrayList list = new ArrayList();
        list.add("你好");
        list.add(123);
        System.out.println(list);

        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("你好");
        arrayList.add("java");
        System.out.println(arrayList);

        //往集合中的某个位置添加一个元素
        arrayList.add(1,"学习");
        System.out.println(arrayList);
    }
}
//[你好, 123]
//[你好, java]
//[你好, 学习, java]

6 根据索引的获取集合中的某个元素get

package com.web.arrayList;

import java.util.ArrayList;

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

        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("你好");
        arrayList.add("java");
        System.out.println(arrayList);

        //往集合中的某个位置添加一个元素
        arrayList.add(1,"学习");
//        System.out.println(arrayList);

        //获取集合中某个索引值的元素
        String s = arrayList.get(1);
        System.out.println(s);
    }
}
//[你好, java]
//学习

7 获取集合的大小,存取元素的个数 size

package com.web.arrayList;

import java.util.ArrayList;


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

        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("你好");
        arrayList.add("java");
        System.out.println(arrayList);

        //往集合中的某个位置添加一个元素
        arrayList.add(1,"学习");
//        System.out.println(arrayList);

        //获取集合中某个索引值的元素
        String s = arrayList.get(1);
        System.out.println(s);

        //获取集合当中元素的个数
        int size1 = arrayList.size();
        System.out.println(size1);
    }
}
//[你好, java]
//学习
//3

8 删除指定元素的值remove

package com.web.arrayList;

import java.util.ArrayList;


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

        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("你好");
        arrayList.add("java");
//        System.out.println(arrayList);

        //往集合中的某个位置添加一个元素
        arrayList.add(1,"学习");
//        System.out.println(arrayList);

        //获取集合中某个索引值的元素
        String s = arrayList.get(1);
        System.out.println(s);

        //获取集合当中元素的个数
        int size1 = arrayList.size();
        System.out.println(size1);

        //删除指定索引的元素,会返回删除的元素值
        String remove = arrayList.remove(2);
        System.out.println(remove);

        //删除指定值,返回boolean类型,默认删除的是第一次出现的数据
        boolean success = arrayList.remove("学习");
        System.out.println(success);

        System.out.println(arrayList);
    }
}

//学习
//3
//java
//true

9 修改指定索引的值set

package com.web.arrayList;

import java.util.ArrayList;


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

        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("你好");
        arrayList.add("java");
//        System.out.println(arrayList);

        //往集合中的某个位置添加一个元素
        arrayList.add(1, "学习");
//        System.out.println(arrayList);

        //获取集合中某个索引值的元素
        String s = arrayList.get(1);
        System.out.println(s);

        //获取集合当中元素的个数
        int size1 = arrayList.size();
        System.out.println(size1);

        //删除指定索引的元素,会返回删除的元素值
        String remove = arrayList.remove(2);
        System.out.println(remove);

        //删除指定值,返回boolean类型,默认删除的是第一次出现的数据
        boolean success = arrayList.remove("学习");
        System.out.println(success);

        System.out.println(arrayList);
        arrayList.add("java");
        arrayList.add("c");
        arrayList.add("python");
        arrayList.add("c#");

        //修改某个索引位置处的数据,修改后会返回原来的值给我们
        System.out.println(arrayList.set(1, "你好呀"));
        System.out.println(arrayList);

    }
}

//学习
//3
//java
//true
//[你好]
//java
//[你好, 你好呀, c, python, c#]

10 ArrayList集合案例

利用ArrayList做一个把书籍加入到购物车后,删除某一类的书籍

package com.web.arrayList;

import java.util.ArrayList;

public class Demo2 {
    public static void main(String[] args) {
        //创建一个集合来存储书名
        ArrayList<String> list = new ArrayList<>();
        list.add("精通java");
        list.add("精通python");
        list.add("精通C语言");
        list.add("学习java入门技术");
        list.add("java基础");
        list.add("java的企业级开发");
        list.add("精通Linux");

        for (int i = 0; i < list.size(); i++) {
            String bookName = list.get(i);
            if (bookName.contains("java")) {
                list.remove(bookName);
                //在这里解释一下为什么要把索引往后退一个呢,因为在ArrayList集合中,删除一个元素,该元素后的元素会往前占被删元素的位置
                //为了避免后面的元素没有删掉,所以需要每删一个,索引就往前走一位。
                i--;
            }
        }
        System.out.println(list);
    }
}

为了解决上面提到的问题,还可以有一种办法,就是从最后一个集合的索引开始遍历,就是倒着遍历,这样就可以避免漏删元素

package com.web.arrayList;

import java.util.ArrayList;

public class Demo3 {
    public static void main(String[] args) {
        //创建一个集合来存储书名
        ArrayList<String> list = new ArrayList<>();
        list.add("精通java");
        list.add("精通python");
        list.add("精通C语言");
        list.add("学习java入门技术");
        list.add("java基础");
        list.add("java的企业级开发");
        list.add("精通Linux");

        for (int i = list.size()-1; i >= 0; i--) {
            String bookName = list.get(i);
            if (bookName.contains("java")) {
                list.remove(bookName);
                //在这里解释一下为什么要把索引往后退一个呢,因为在ArrayList集合中,删除一个元素,该元素后的元素会往前占被删元素的位置
                //为了避免后面的元素没有删掉,所以需要每删一个,索引就往前走一位。
            }
        }
        System.out.println(list);
    }
}

注意:本片文章是笔者的学习笔记,因为笔者的能力有限,会造成很多的问题,如果您在浏览或者运行代码的时候发现了问题,还请您能够在评论区留言,笔者看到后会在第一时间解决问题。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与风过山岗

您的鼓励是我莫大的荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值