Java数组

在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。数组就是个简单的线性序列,这使得元素访问非常快速,但也损失了其他一些特征。当你创建了一个数组对象(将数组本身作为对象看待),数组的大小就被固定了,并且这个数组的生命周期也是不可改变的。通常是创建一个特定大小的数组,在空间不足的时候再创建一个新的数组,然后把旧数组中所有的引用移到新数组中。Java的数组与容器会因为时刻存在的边界检查带来固定的性能开销。当你创建一个数组时,它只能保存特定类型的数据。而且数组可以保存基本数据类型。

Java标准类库提供有static方法System.arraycopy(),用它复制数组比用for循环复制要快得多。???为 什么,它是如何实现的?
Arrays类重载了equals()方法,用来比较整个数组。同样的,此方法被所有基本类型与Object都作了重载。数组相等的条件是元素个数必须相等,并且对应位置的元素也相等,这可以通过对每一个元素使用equals()做比较来判断。
Java标准类库中的排序算法对各种类型作了优化---针对基本类型设计的“快速排序”,以及针对对象设计的“稳定归并排序”。
Java2容器类类库的用途是“持有你的对象”,并将其划分为两个不同的概念:
1. Collection: 一组独立的元素,通常由某种规则应用于其上。List必须保持元素特定的顺序,而Set不能有重复元素。
2. Map: 一组成对的键值对(key-value)对象。Map可以返回所有键组成的Set,所有值组成的Collection,或者其键值对组成的 Set(???)List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的
排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键" 的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用LinkedHashSet或者 LinkedHashMap.Map: 方法put(Object key, Object value)添加一个“值”(想要得东西)和与“值”相关联的“键”(key)(使用它来查找)。方法get(Object key)返回与给定“键”相关联的“值”。可以用containsKey()和containsValue()测试Map中是否包含某个“键”或“值”。标准的Java类库中包含了几种不同的Map:HashMap, TreeMap, LinkedHashMap, WeakHashMap,
IdentityHashMap。它们都有同样的基本接口Map,但是行为、效率、排序策略、保存对象的生命周期和判定“键”等价的策略等各不相同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值