java 中一个集合用toArray方法转换成数组的问题

问题描述

在java源码中写道:publicObject[]toArray(){//Estimatesizeofarray;bepreparedtoseemoreorfewerelementsObject[]r=newObject[size()];Iterator<E>it=iterator();for(inti=0;i<r.length;i++){if(!it.hasNext())//fewerelementsthanexpectedreturnArrays.copyOf(r,i);r[i]=it.next();}returnit.hasNext()?finishToArray(r,it):r;}

注释说明,在转换的期间,会出现集合元素少于或者多余,初始化数组的大小。但是数组的初始化是以集合的大小为依据的,也就是Object[]r=newObject[size()];

这句话。请问,为什么还需要对元素的多少进行考虑~~~~~~谢谢。。。

解决方案

解决方案二:
因为不是同步的访问,所以toArray期间集合的数据存在被修改的可能。

时间: 2024-09-26 22:35:51

java 中一个集合用toArray方法转换成数组的问题的相关文章

java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗

问题描述 java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗 java中一个void修饰的方法无返回值,那么有是不是返回一个空对象,有空对象这种说法吗 解决方案 加入你有一个对象 Object 里面有个方法:public void method1(); 那你调用这个方法的时候就是 object.method1(); 那么这里就表示 没有返回值. 所以我里面的void就是 :没有返回值,这个方法不能做他用! 对比 有一个object 里面有一个方法: publ

java中RabbitMQ集群使用方法简单介绍

RabbitMQ是一个很受欢迎的消息中间件,通过它可以很方便地实现异构子系统之间的通讯,还可以将不同子系统之间进行解耦.它用erlang开发,基本上是实现了AMQP 1.0标准的消息协议. 了解RabbitMQ首先要了解以下一些概念:Message,Producer.Exchange.Queue.Consumer Message是一些简单的字符串, Producer(Publisher)是实际发布消息的角色 Queue,是实际存放消息的地方.顾名思义,消息从Queue一端放入,另一段由Consu

java 接口 接口实现-Java中一个类如何实现多个接口中同名同参返回值不同的方法?

问题描述 Java中一个类如何实现多个接口中同名同参返回值不同的方法? 如:` class A implements Interface1,Interface2{ //这里该怎么写呢? } interface Interface1{ public void method(); } interface Interface2{ public int method(); } 解决方案 class A implements Interface1,Interface2{ //直接写啊 public voi

java中一个类的方法与方法之间可以有联系,也可以相互孤立吗

问题描述 java中一个类的方法与方法之间可以有联系,也可以相互孤立吗 java中一个类的方法与方法之间可以有联系,也可以相互孤立吗什么情况要孤立,什么情况要有联系呢 解决方案 看需求.比如说class A{ float get长度() { ... } float get宽度() { ... } float get面积() { return get长度()*get宽度(); }}这里就需要调用另外两个方法 解决方案二: 现在还有人有这玩意嘛 解决方案三: 类的方法主要是对属性的一些操作,方法作用

在java中一个方法抛两个异常会怎样

问题描述 在java中一个方法抛两个异常会怎样 在一个java方法中同时用throw和throws抛出异常.会有不良的影响么.会不会有一个一个异常抛不出去的情况发生啊?求大神帮帮忙 解决方案 他俩用的地方不一样,throws是写在方法后面,其他地方调用时,要捕获,throw是在方法内直接抛出,可以一起用throw触发了,估计就到不了throws的捕获了,看你具体怎样用的 解决方案二: 方法声明时可以抛出异常,但是并不代表调用这个方法时会发生异常. 测试要构造异常条件才能走入异常分支的啊.例如:

java语法-java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗

问题描述 java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗 java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗 解决方案 看需要,一般来说匿名类用来实现接口.匿名对象就是一般的对象.单单从语法上来说,都可以. 解决方案二: 还是与些区别的,匿名类用来实现接口.匿名对象其实就是一般的对象.

java中Servlet处理乱码的方法_java

今天在部署一个webservices程序的时候,从页面获取数据的servlet出现了乱码问题,在servlet中我已经把request.setCharacterEncoding("GB2312");这段文字加入到代码中去,但是还是出现乱麻问题. 到网上找资料,如下:JAVA是Unicode编码,你先转换成ISO8859-1,然后再转换成GBK或是GB2312. java 代码 复制代码 代码如下: request.setCharacterEncoding("ISO8859-1

java中List对象排序通用方法_java

本文实例讲述了java中List对象排序通用方法.分享给大家供大家参考.具体分析如下: 在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询.如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能. 只要把第一次查出来的结果存放在session中,就可以对list重新排序了.一般对list排序可以使用Collections.sort(list),但如果list中包含是一个对象的话,这种方法还是行不通的.那要怎么排序

Java 中基本类型和字符串之间的转换

Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使用String类的 valueOf() 方法 3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串 再来看,将字符串转换成基本类型有两种方法: 1. 调用包装类的 parseXxx 静态方法 2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱 PS:其他基