单例集合-list接口与其实现类ArrayList的相关方法

1.集合结构图

在这里插入图片描述

2.单例集合:将数据一个一个进行存储

2.1 Collection 接口介绍
collection是单例集合的根接口,它包含两个子接口是List接口、Set接口。
在这里插入图片描述
2.2 collection接口常用的方法
在这里插入图片描述

3.List接口

3.1List接口的特点
有序:有序(元素存入集合的顺序和取出的顺序一致)。 List 中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素。
可重复: List 允许加入重复的元素。更确切地讲,List 通常允许满足e1.equals(e2) 的元素重复加入容器。

3.2List接口的方法
在这里插入图片描述

4.ArrayList容器类

ArrayList是List接口的实现类。是List存储特征的具体实现。
ArrayList底层是用数组实现的存储。特点: 查询效率高,增删效率低,线程不安全。

5.具体操作代码

package com.List;

import java.util.ArrayList;
import java.util.List;

public class ArrayListTest {
    public static void main(String[] args){
        //实例化ArrayList容器
        List<String> list = new ArrayList<>();

        //容器内添加元素
        System.out.println("-------------容器内添加元素------------------------------");
        boolean flag1 = list.add("goutong666");
        System.out.println(flag1);
        boolean flag2 = list.add("qwerty");
        System.out.println(flag1);


        list.add(1,"big bang");//添加索引数不能大于元素个数
        list.add(3,"666");
        list.add(4,"6565555556");



        //遍历容器
        System.out.println("-------------容器内的元素------------------------------");
        for (int i =0;i<list.size();i++){

            System.out.println("num"+i+":"+list.get(i));
        }



        //删除容器内元素
        System.out.println("-------------删除容器内元素------------------------------");
        String value = list.remove(2);//根据索引删除
        System.out.println(value);

        boolean flag3 = list.remove("666");//根据目标元素删除
        System.out.println(flag3);
        System.out.println("---------------容器内元素----------------------------");
        for (int i =0;i<list.size();i++){

            System.out.println("num"+i+":"+list.get(i));
        }

        //修改替换容器内元素
        System.out.println("---------------替换容器内元素----------------------------");
        String value1 = list.set(2,"da sha bi");//根据索引替换元素
        System.out.println(value1);
        System.out.println("---------------容器内元素----------------------------");
        for (int i =0;i<list.size();i++){
            System.out.println("num"+i+":"+list.get(i));
        }


        //清空容器和判断容器是否为空
        System.out.println("---------------清空容器内所有元素----------------------------");
        list.clear();
        System.out.println(list.size());
        System.out.println("---------------判断容器是否为空---------------------------");
        boolean flag4 = list.isEmpty();
        System.out.println(flag4);


        //判断容器内是否包含某个元素
        System.out.println("---------------判断容器内是否包含某个元素---------------------------");
        System.out.println("①添加元素");
        list.add(0,"123L");
        list.add(1,"456L");
        list.add(2,"789L");
        list.add(3,"666hh");
        list.add(4,"123L");
        System.out.println("②容器内元素");
        for (int i =0;i<list.size();i++){
            System.out.println("num"+i+":"+list.get(i));
        }
        System.out.println("③判断是否包含");
        boolean flag5 = list.contains("666h");
        System.out.println(flag5);
        boolean flag6 = list.contains("789L");
        System.out.println(flag6);

        //查找元素位置,存在返回索引,不存在返回-1
        System.out.println("---------------查找元素位置(索引)----------------------------");
        int i1 = list.indexOf("123L");//第一次出现的位置
        System.out.println(i1);
        int i2 = list.lastIndexOf("123L");//最后一次出现的抢位置
        System.out.println(i2);
        int i3 = list.lastIndexOf("1dafcs");
        System.out.println(i3);

        //单例集合转数组
        System.out.println("---------------单例集合转数组----------------------------");
        for (int i =0;i<list.size();i++){
            System.out.println("num"+i+":"+list.get(i));
        }
        //将ArrayList转换为Object[],但是不能将转换的数组做数组强制类型转换
        System.out.println("①将ArrayList转换为Object[]");
        Object[] arr = list.toArray();
        for (int j = 0;j<arr.length;j++){
            String str = (String)(arr[j]);//单个元素强转为String类型
            System.out.println(str);
        }

        //将单例集合转化为指定类型的数组,但是类型需要参考泛型中的类型
        System.out.println("②将单例集合转化为指定类型的数组");
        String[] arr2 = list.toArray(new String[list.size()]);//参照泛型直接定义数组类型为String
        for (int j = 0;j<arr2.length;j++){
            System.out.println(arr2[j]);
        }


        //容器的并集操作addAll,但是容器不能为null
        System.out.println("----------容器的并集操作----------------------------");
        List<String> list2 = new ArrayList<>();
        System.out.println("list2添加元素---------");
        list2.add("a");
        list2.add("b");
        list2.add("c");
        list2.add("d");
        for (int i =0;i<list2.size();i++){
            System.out.println("index"+i+":"+list2.get(i));
        }
        System.out.println("list3添加元素---------");
        List<String> list3 = new ArrayList<>();
        list3.add("aaa");
        list3.add("bbb");
        list3.add("ccc");
        list3.add("ddd");
        for (int i =0;i<list3.size();i++){
            System.out.println("index"+i+":"+list3.get(i));
        }
        System.out.println("list2与list3求并集---------");
        boolean f = list2.addAll(list3);
        System.out.println(f);
        for (String str:list2){//for each循环
           System.out.println(str);
        }


        //容器的交集操作retainAll
        System.out.println("----------容器的交集操作----------------------------");
        System.out.println("list2元素---------");
        for (int i =0;i<list2.size();i++){
            System.out.println("index"+i+":"+list2.get(i));
        }
        List<String> list4 = new ArrayList<>();
        System.out.println("list4添加元素---------");
        list4.add("a");
        list4.add("bfsf");
        list4.add("ca");
        list4.add("d");
        for (int i =0;i<list4.size();i++){
            System.out.println("index"+i+":"+list4.get(i));
        }
        System.out.println("list2与list4求交集---------");
        boolean f2 = list2.retainAll(list4);
        System.out.println(f2);
        for (String str2:list2){
            System.out.println(str2);
        }

        //容器的差集操作removeAll
        System.out.println("----------容器的差集操作----------------------------");
        System.out.println("list4元素---------");
        for (int i =0;i<list4.size();i++){
            System.out.println("index"+i+":"+list4.get(i));
        } List<String> list5 = new ArrayList<>();
        System.out.println("list5添加元素---------");
        list5.add("adada");
        list5.add("bfsf");
        list5.add("cada");
        list5.add("d");
        for (int i =0;i<list5.size();i++){
            System.out.println("index"+i+":"+list5.get(i));
        }
        System.out.println("list5与list4求差集---------");
        boolean f3 = list5.removeAll(list4);
        System.out.println(f3);
        for (String str3:list5){
            System.out.println(str3);
        }

6.结果

-------------容器内添加元素------------------------------
true
true
-------------容器内的元素------------------------------
num0:goutong666
num1:big bang
num2:qwerty
num3:666
num4:6565555556
-------------删除容器内元素------------------------------
qwerty
true
---------------容器内元素----------------------------
num0:goutong666
num1:big bang
num2:6565555556
---------------替换容器内元素----------------------------
6565555556
---------------容器内元素----------------------------
num0:goutong666
num1:big bang
num2:da sha bi
---------------清空容器内所有元素----------------------------
0
---------------判断容器是否为空---------------------------
true
---------------判断容器内是否包含某个元素---------------------------
①添加元素
②容器内元素
num0:123L
num1:456L
num2:789L
num3:666hh
num4:123L
③判断是否包含
false
true
---------------查找元素位置(索引)----------------------------
0
4
-1
---------------单例集合转数组----------------------------
num0:123L
num1:456L
num2:789L
num3:666hh
num4:123L
①将ArrayList转换为Object[]
123L
456L
789L
666hh
123L
②将单例集合转化为指定类型的数组
123L
456L
789L
666hh
123L
----------容器的并集操作----------------------------
list2添加元素---------
index0:a
index1:b
index2:c
index3:d
list3添加元素---------
index0:aaa
index1:bbb
index2:ccc
index3:ddd
list2与list3求并集---------
true
a
b
c
d
aaa
bbb
ccc
ddd
----------容器的交集操作----------------------------
list2元素---------
index0:a
index1:b
index2:c
index3:d
index4:aaa
index5:bbb
index6:ccc
index7:ddd
list4添加元素---------
index0:a
index1:bfsf
index2:ca
index3:d
list2与list4求交集---------
true
a
d
----------容器的差集操作----------------------------
list4元素---------
index0:a
index1:bfsf
index2:ca
index3:d
list5添加元素---------
index0:adada
index1:bfsf
index2:cada
index3:d
list5与list4求差集---------
true
adada
cada

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值