问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java数组的长度到底能有多大?

发布网友 发布时间:2022-04-22 09:46

我来回答

1个回答

热心网友 时间:2023-06-26 16:35

数组下标可以使用0 到 Integer.MAX_VALUE (=0x7fffffff) ,可以使用不代表一定能够使用,要看OS、Java VM能生成到多大。

特点:

容量扩充性:从内部实现机制来讲ArrayList和Vector都是使用的数组形式来存储的。当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。

同步性:ArrayList,LinkedList是不同步的,而Vestor是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。

数据操作效率:ArrayList和Vector中,从指定的位置(用index)检索一个对象,或在集合的末尾插入、删除一个对象的时间是一样的,可表示为O。但是,如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元素的索引位置。为什么会这样呢?以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行(n-i)个对象的位移操作。

注意事项:

如果只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是对其它指定位置的插入、删除操作,最好选择LinkedList

ArrayList和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快。

ArrayList和Vector中,从指定的位置(用index)检索一个对象,或在集合的末尾插入、删除一个对象的时间是一样的,可表示为O(1)。但是,如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元素的索引位置。为什么会这样呢?以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行(n-i)个对象的位移操作。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 中国哪些大学有 兽医专业 大象英文怎么写 苦瓜鸡蛋饼孕妇能吃吗 想要学兽医,那哪些大学的兽医专业是比较好的? 孕妇可以吃苦瓜炒鸡蛋吗 华为路由Q1桥接怎么设置 JAVA怎样获取数组长度 吗对胎儿有影响吗 孕妇可以吃苦瓜炒鸡蛋吗 两台华为无线路由器桥接怎么设置 “大象”的英语单词怎么读? USMLE考试难度到底有多大 怀孕可以吃苦瓜炒鸡蛋吗 华为路由器作为主路由器与TP路由器桥接,怎么设置? 石清茶的功效与作用,鸡内金石清茶怎么样,石清茶 孕妇肚子饿可以吃苦瓜炒鸡蛋吗 USMLE 中的 CK 和 CS ??? 孕妇能吃苦瓜炒鸡蛋么 以后想当兽医,可以报考哪些大学? java里的数组为什么有length();而String 没有length()????? 苦瓜炒鸡蛋产妇能吃吗 产妇吃苦瓜炒鸡蛋有什么好处 怀孕一个月可以吃苦瓜炒鸡蛋吗 河北有畜牧兽医专业的学校有哪些?? USMLE step1和step2CK的考试成绩可以保留多久? java,List得到数组长度的方法? 苦瓜能和鸡蛋一起吃吗?为什么? 云南哪几个学校有畜牧兽医专业 苦瓜炒鸡蛋有哪些好处 五类石清茶可以排结石?真心没有副作用吗? 介绍几个兽医专业的学校? java中如何获取数组的长度? 苦瓜和鸡蛋能一起吃吗? 中国哪些大学有 兽医专业 usmle 的step1 和step2CK和中国的执业医师考试比难度差别很大吗 石方茶对治疗胆结石有作用吗? java数组的长度和大小有什么区别 动物医学自考有哪些院校? Java数组的长度是怎样计算的 初学者,求大神指点 茶喝多了有什么副作用吗? 通过参加usmle考试留在美国行医,有可能吗