ArrayList运用案例

ArrayList

  • 有序:元素存入集合的顺序和取出顺序一致,根据元素的索引标记进行访问数据。
  • 集合中的数据可以重复。
  • 查询效率高,增删效率低,线程不安全
  • 底层用数组实现的存储

常用方法

方法说明
void add(int index,Object element)在执行索引位置插入数据
Object set(int index,Object element)修改制定位置元素
Object get(int index)返回制定位置的元素
Object remove(int index)删除制定位置的元素
int indexOf(Object o)返回第一个匹配元素的索引,若找不到相关元素则返-1
int lastIndexOf(Object o)返回最后一个匹配元素的索引,若找不到相关元素则返-1

ArrayList案例

public class demo{
    public static void main(String[] args) {
        //接口 对象=new 类();
        ArrayList<String> list = new ArrayList<>();

        //添加数据,直接添加数据,返回boolean
        boolean flag = list.add("北京");
        System.out.println(flag);

        //根据索引方式添加数据,没有返回值void
        list.add(1,"上海");
        list.add(2,"深圳");
        //注意:索引下标不能大于数据数目


        //获取集合中的元素
        System.out.println(list.get(1));
        System.out.println(list.get(0));

        //for循环获取元素,size()返回集合中的个数
        System.out.println("----------------------");
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));
        }

        //根据下标索引删除元素,并返回删除的值
        String remove = list.remove(1);
        System.out.println(remove);
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));
        }
        //删除指定元素,返回boolean
        boolean flag1 = list.remove("北京");
        System.out.println(flag1);
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));
        }
        //替换元素,set(被替换下标,替换元素),返回被替换的元素
        String arg1 = list.set(0, "广州");
        System.out.println(arg1);
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));
        }
        
        System.out.println("-----清空容器----");
        list.clear();
        System.out.println(list.size());
        
        System.out.println("----判断容器是否为空-----------");
        System.out.println(list.isEmpty());
        
        System.out.println("-----判断容器是否包含某元素------");
        list.add("杭州");
        System.out.println(list.contains("杭州"));
        
        System.out.println("------返回元素第一次出现的位置----------");
        list.add(1,"杭州");
        System.out.println(list.indexOf("杭州"));

        System.out.println("------返回元素最后一次出现的位置,若没有此值,则返回-1");
        System.out.println(list.lastIndexOf("杭州"));

        //Arraylist转换为数组
        Object[] objects = list.toArray();
        for (int i = 0; i <objects.length ; i++) {
            String a=(String)objects[i];
            System.out.println(a);
        }

        //将单例集合转换为指定类型数组
        String[] s2 = list.toArray(new String[list.size()]);
        for (int i = 0; i <s2.length ; i++) {
            System.out.println(s2[i]);
        }

        //并集操作
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("s");
        list1.add("b");
        list1.add("c");

        ArrayList<String> list2 = new ArrayList<>();
        list2.add("a");
        list2.add("b");
        list2.add("c");

        boolean b = list1.addAll(list2);
        //输出s,b,c,a,b,c
        System.out.println(b);
        for (int i = 0; i <list1.size() ; i++) {
            System.out.println(list1.get(i));
        }

        //交集
        ArrayList<String> list11 = new ArrayList<>();
        list11.add("s");
        list11.add("b");
        list11.add("c");

        ArrayList<String> list22 = new ArrayList<>();
        list22.add("c");
        list22.add("b");
        list2.add("d");
        boolean b1 = list11.retainAll(list2);
        //结果为b,c
        System.out.println(b1);
        for (int i = 0; i <list11.size() ; i++) {
            System.out.println(list11.get(i));
        }

        System.out.println("---差集操作---");
        ArrayList<String> list111 = new ArrayList<>();
        list111.add("s");
        list111.add("b");
        list111.add("c");

        ArrayList<String> list222 = new ArrayList<>();
        list222.add("c");
        list222.add("b");
        list222.add("d");

        boolean b2 = list111.removeAll(list222);
        System.out.println(b2);
        for (int i = 0; i <list111.size() ; i++) {
            System.out.println(list111.get(i));
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值