JAVA的set集合的toArray()方法

JAVA的set集合的toArray()方法,第1张

JAVA的set集合的toArray()方法 官方JDK6文档给出的解释


对于这两种重载的不同方法,由于参数不同,则返回的类型也是不同

使用
  • 第一个方法返回的是一个Object[]类,这个类也是继承自Object类,因此他和String[]是同级的关系,不能进行转换为String[]类型,也没有对应的方法。
		Set set1 = new HashSet<>();
        set1.add(1);
        set1.add(2);
        set1.add(3);
        set1.add(4);
        
        Integer[] set1_array =  set1.toArray();//java: 不兼容的类型: java.lang.Object[]无法转换为java.lang.String[]
 

同样,我们可以利用迭代器对此Object[]类进行遍历,由于传入集合中的为Integer类型,因此每个数据也为Integer类型,如下程序:

Set set1 = new HashSet<>();
        set1.add(1);
        set1.add(2);
        set1.add(3);
        set1.add(4);

        Object[] set1_array = set1.toArray();
        for(Object a: set1_array){
            System.out.println(a.getClass().getName()+ "数据为" + a);
        }
        //java.lang.Integer数据为1
		//java.lang.Integer数据为2
		//java.lang.Integer数据为3
		//java.lang.Integer数据为4
 

因此可以发现Object[]为一个单独的类
如果我们要转换其中的内容为其他类型可以通过遍历进行转换,例如下面程序:

Set set1 = new HashSet<>();
        set1.add(1);
        set1.add(2);
        set1.add(3);
        set1.add(4);

        Object[] set1_array = set1.toArray();
        for(Object a: set1_array){
            String b = a.toString();
            System.out.println(b.getClass().getName()+ "数据为" + b);
        }
        
 
  • 第二个方法的使用即可以将集合set转换为对应类型的数组
    如下程序所示:
Set set1 = new HashSet<>();
        set1.add(1);
        set1.add(2);
        set1.add(3);
        set1.add(4);

        Integer[] set1_array = set1.toArray(new Integer[0]);
        for(Integer a: set1_array){
            System.out.println(a.getClass().getName()+ "数据为" + a);
        }
        

c利用第二种重载方法,即可将set数组转换为指定格式的数组

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5482153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)