Java 集合概念及常用方法

一.集合与数组

1.集合与数组存储数据概述

  • 集合与数组都是对多个数据进行存储操作的结构,简称Java容器

说明:

    此时的存储主要是指内存层面的存储,不涉及持久化存储

2.数组存储的特点

  • 数组一旦初始化后,长度确定,不可更改

  • 数组一定定义好之后,元素的数据类型确定,因此只能操作指定数据类型的数据

如:    String [] arr;

        int [] arr1;

       Object [] arr2;

3.数组存储的弊端

  • 初始化后,长度不可修改

  • 数组中提供的方法有限,对添加,删除,插入等操作非常不方便,效率不高

  • 获取数组中实际元素,没有现成的属性或方法

  • 数组对无序,不可重复数据不可操作

二.集合概念引入

  • Collection是一个容器,Array也是一个容器

  • Array指定了存储空间,且是空间连续,长度不可变的容器

Array有索引值,查询方便,但是插入,删除缓慢

eg:

   用户注册时

     User对象 --> 数组(长度为固定值) --> 存储满之后需要重新创建数组

三.为什么要有集合?

  • 实际开发中,数据数量是变化的,这时就需要一个动态容器来存储数据

  • 不同数据结构不同,因此,java中就提供了许多不同类型的集合类

四.集合API

  • 集合概述

   集合就是容器,以不同结构来存储数据

      操作有 增,删,改,查

  • 集合体系概述

Java集合框架由许多接口,抽象类,具体类组成,位于java,util包中

五.集合与泛型的联系

Collection<E>

  • 集合可以使用泛型向集合中传入参数(数据类型),默认为Object类型,

  • 集合必须存储引用类型,因此存储时使用自动装箱转换为包装类,但如果需要向下转型时就会变得很复杂

  • 此时,引出泛型的概念,使一个集合存储一类数据

Collection<String> c = new ArrayList<String>();

六.Collection中的常用方法  

 ①添加元素    

        c.add("a");
        c.add("b");
        c.add("c");
        c.add("a");
        c.add("d");
        System.out.println(c);

②清空集合

     c.clear();
     System.out.println(c);

③删除指定的元素,且只删除第一次出现的

System.out.println(c.remove("a"));

④判断是否包含指定元素

System.out.println(c.contains("d"));

⑤判断集合是否为空

System.out.println( c.isEmpty());

⑥获取集合长度

System.out.println(c.size());

⑦转换类型

        Object[] objects = c.toArray();     //默认转换为Object类
        System.out.println(Arrays.toString(objects));
​
        String[] strings = c.toArray(new String[c.size()]);
        System.out.println(Arrays.toString(strings));

⑧XXXAll()

Collection<String> c = new ArrayList<String>();
​
        c.add("a");
        c.add("b");
        c.add("c");
        c.add("d");
​
        Collection<String> c1 = new ArrayList<String>();
​
        c1.add("a");
        c1.add("b");
        c1.add("c");
​
        //添加后面集合中的所有元素到前面集合
        System.out.println(c.addAll(c1));
        System.out.println(c);
​
        //删除c1在c中的内容
        System.out.println(c.removeAll(c1));
        System.out.println(c);
​
        //判断是否包含所有,包含所有则返回true
        System.out.println(c.containsAll(c1));
        System.out.println(c);
​
        //只保留两集合中都有的部分,若值发生变化,则返回true;值不发生变化,则返回false
        System.out.println(c.retainAll(c1));
        System.out.println(c);
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不会写代码的菜

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值