java集合Java List集合

java集合  时间:2021-07-09  阅读:()

请问JAVA中什么是集合,和数组比有什么区别呢?谢谢

数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素。

但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的。

还有一点,JAVA里面的数组是会做边界检查的,所以当你越界访问时,会抛出RuntimeException,所以不用担心在C或C++因为不做边界检查而出现的问题了,当然边界检查是以牺牲效率为代价的。

数组与其它容器类的区别体现在三个方面:效率、类型识别和可以持有primitives。

JAVA里面提供的其他容器还包括List,Set和Map。

他们处理对象的时候就好像这些这些对象都没有自己的类型一样,容器将它所含的元素都看成是JAVA中所有类的根类Object类型的,这样我们只需创建一种容器,就能把所有的类型的对象全部放进去。

但是当取出的时候,那就需要我们自己进行类型转换了,不过在JAVA Tiger版里面新引入了“泛型”的概念,结合容器类一起使用就可以解决类型转换的问题,关于“泛型”这就不详细讲解了。

从上面的角度来看,这种做法很不错,但是就是苦了primitives,如果是常量的话,可以把primitive转换成wrapper类然后放进容器里面,如果是变量的话,那就只能放在你自己的类里了。

与其他容器类相比,数组会在编译的时候作类型检查,从而防止你插入错误类型的对象,或者在提取对象的时候把对象的类型给搞错了,JAVA在编译和运行的时候都能阻止你将一个不恰当的消息传给对象。

至于效率,数组无疑是要高于其他容器类的,因为有些容器类的实现就是基于数组的,比如ArrayList。

不论从类型检查还是效率的角度来考虑,我们首选数组来作为容器都是没错的,但是数组的缺点就是功能太弱了,所以才会有容器类的出现。

要多说几句的就是,java.util包里面有一个Arrays类,它包括了一组可以用于数组的static的工具方法,其中最基本的是四个方法:用来比较两个数组是否相等的equals();用来填充数组的fill();用来对数组进行排序的sort();以及用于在一个已经排序的数组中查找元素的binarySearch()。

所有这些方法都对primitives和Object进行了重载。

此外还有一个asList()方法,它接受一个数组,然后把它转成一个List容器。

JAVA标准类库还提供了一个System.arraycopy()的静态方法,它能以较快的速度拷贝数组,对primitive和Object都进行了重载,但是注意当对Object数组进行拷贝时,进行的是浅拷贝(shallow copy)。

Java集合的种类

A1:list,queue,set,tree,map等几个大类型,共有约3-40个子类。

A2:数据结构范围的集合包括Map Java的、狭义的Collection接口没有包括Map。

但Map、Collection、还有其他的子类都属于Java集合框架(Java Collections Framework, JCF) 属于集合。

Java List集合

写个访问器方法。

如果names中的元素可以被修改,可以直接: public List<String[]> getNames() { return names; } 如果不惜网names中的元素被修改: public List<String[]> getNames(){ List<String[]> namesCopy = new ArrayList<String[]>(); //此处将元素copy到新list中,深复制还是浅复制要看具体需求了 return namesCopy; }

轻云互联22元/月,美国硅谷、圣何塞CN2GIA云服务器,香港沙田cn2建站vps仅25元/月

轻云互联怎么样?轻云互联,广州轻云网络科技有限公司旗下品牌,2018年5月成立以来,轻云互联以性价比的价格一直为提供个人,中大小型企业/团队云上解决方案。本次轻云互联送上的是美国圣何塞cn2 vps(免费50G集群防御)及香港沙田cn2 vps(免费10G集群防御)促销活动,促销产品均为cn2直连中国大陆线路、采用kvm虚拟技术架构及静态内存。目前,轻云互联推出美国硅谷、圣何塞CN2GIA云服务器...

HostWebis:美国/法国便宜服务器,100Mbps不限流量,高配置大硬盘,$44/月起

hostwebis怎么样?hostwebis昨天在webhosting发布了几款美国高配置大硬盘机器,但报价需要联系客服。看了下该商家的其它产品,发现几款美国服务器、法国服务器还比较实惠,100Mbps不限流量,高配置大硬盘,$44/月起,有兴趣的可以关注一下。HostWebis是一家国外主机品牌,官网宣称1998年就成立了,根据目标市场的不同,以不同品牌名称提供网络托管服务。2003年,通过与W...

新注册NameCheap账户几天后无法登录原因及解决办法

中午的时候有网友联系提到自己前几天看到Namecheap商家开学季促销活动期间有域名促销活动的,于是就信注册NC账户注册域名的。但是今天登录居然无法登录,这个问题比较困恼是不是商家跑路等问题。Namecheap商家跑路的可能性不大,前几天我还在他们家转移域名的。这里简单的记录我帮助他解决如何重新登录Namecheap商家的问题。1、检查邮件让他检查邮件是不是有官方的邮件提示。比如我们新注册账户是需...

java集合为你推荐
策略组怎样打开组策略???spawning在c语言编译时出现Error spawning cl.exe,是怎么回事?欢迎页面怎样取消“欢迎页面”?社工库网站怎么找社工库?mediasres什么意思数据分析报告范文如何做一个好的数据分析报告什么是SOA什么是cookies 有什么作用水表读数水表的读数是什么意思?怎么读?银联商务招聘急问银联商务的客服待遇如何啊?文件系统类型文件系统的类型是FAT32 /C选项只在NTFS卷上起作用 的意思
域名注册信息查询 万网域名空间 国外vps租用 sharktech bandwagonhost 美国主机论坛 香港新世界电讯 万网优惠券 镇江联通宽带 发包服务器 韩国网名大全 godaddy域名证书 已备案删除域名 徐正曦 广州虚拟主机 服务器论坛 申请免费空间 万网主机 免费稳定空间 买空间网 更多