Java集合(八): Collection集合方法详解

目录

1、Collection方法

1.1、方法概述

1.2、方法详解

1.3、Collection的toArray()方法

2、Collection特性


1、Collection方法

1.1、方法概述

Collection作为集合顶层接口,主要包含增(add())、删(remove)、查(iterator)、包(contains)、空(isEmpty)、数(size())、清(clear)等方法。

注意:Collection中没有修改方法,修改方法需要索引,是在List中实现的。

1.2、方法详解

1.3、Collection的toArray()方法

toArray() 将单列集合转为数组的方法。

public Object[] toArray();

public <T> T[] toArray(T[] a);

toArray()  最大的问题是转换后的数据类型是 Object[],当需要使用具体数据类型如String[]时会有问题。java的Object数组不能转换成为String[]数组,这就说明你要转换的数组它本身是Object类型的数组,但是你却非要把它转换为String类的数组,这当然是错误的。

[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

public class TestCollectionUtils {

    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("a");
        c.add("b");
        c.add("c");
        //[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
//        String[] str = (String[])c.toArray();
//
//        Object[] objects = c.toArray();
        //[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
//        String[] strings = (String[])objects;

        //正确做法
        Object[] objects = c.toArray();
        String[] strings = Arrays.copyOf(objects, objects.length, String[].class);
        System.out.println(Arrays.toString(strings));//[a, b, c]
    }

}

public <T> T[] toArray(T[] a)的使用

        在toArray参数中直接确定使用什么数据类型来接受,T代表数据类型,[]代表的是数组,即在toArray()方法中传入一个具体数据类型的数组即可。直接返回的就是具体数据类型的数组对象。

长度定义方式一:直接给0即new String[0],如果长度不够,系统会自动加长度,这样就消耗了系统的资源。

长度定义方式二:长度给的过长,但是这些多余的长度还在系统中存在,就形成了一个内存的浪费

长度定义方式三:就是在定义String[]数组的时候,使用集合的长度来定义数组的长度,因为集合的长度已经定了,其元素的个数也已经定了。

2、Collection特性

这里写图片描述

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值