JAVA 总笔记 2

model 7:
一、集合:
用来存储对象,并且只能存储对象的对象。
二、java中的集合组成:
1.接口:给每一种类型的集合定义了必须实现的方法。
2.实现:针对每一中类型的集合提供的若干实现类,例如:ArrayList,LinkedList,Vector……
3.算法:对于数据的增删改查的实现。

package: java.util.*;

三、集合分类:
1.Collection:用于存放单个值的集合。jdk不提供针对与这个接口的直接实现。
Collection{
add(Object obj);
addAll(Collection coll);
remove(Object value);
removeAll(collection coll);
size();
toArray();
interator();
}
1).List:
1.有序的集合,可以精确的控制元素插入的位置。 可以通过int index来访问和查找当前集合中的 元素。
2.允许存放重复值
3.如果允许存放null的值,那么null可以多次出现。
interface List extends Collection{
add(int index,Object e);
addAll(int index,Collection c);
get(int index);
remove(int index);
set(int index,Object e);
subList(int from,int to);[from,to);
}
1).ArrayList:允许重复值,并且允许null
1.借助于数组实现的。
2.数组空间连续,所以通过索引值进行随机访问的效率非常高。
3.数组一旦创建长度不能改,所以如果插入u要判断容量,扩容,还有可能会涉及数据的搬移,所以相对来说插入,删除效率较低。
2).Vector:线程安全的ArrayList
3).LinkedList:借助于双向链表实现的有序的线性结构。
1.所有的数据都是离散的分布在内存中,不需要事先申请连续空间存储,不受长度限制
2.插入不需要判断容量,也不需要移动数据,删除也不需要移动数据,所以插入删除效率相对较高
3.因为数据离散分布,随机按照索引值查找,需要从第一个开始,或者从最后一个开始数,所以查找效率相对较低。

2).Set:不允许存放重复值。最多只能有一个null元素。
HashSet:借助于hash表实现,内部维护的是一个HashMap的实例
HashSet在判断值是否重复时,先判断hashCode的返回结果是否一致,如果hashCode一致,再调用equals方法看返回结果是否为true,如果是,认为值重复,如果不是,认为不是重复的值。
if(e.hash==hash&&(e.key==key||e.equals(key)))
作为HashCode方法的重写过程:如果两个对象的equals返回结果位false,为了提高写入效率,尽可能让hashCode值不一样(散列)。
SortedSet:有序的set集合,当前集合中所有的元素按照他们的自然排序规则排序,或者按照创建SortedSet集合时传递的Comparator进行排序。
1.自然排序:拥有自然排序规则的对象一定时实现了java.lang.Comparable接口的对象。
comparable{
int compareTo(Object obj){
return {
if(this>obj) return 1;
if(this==obj) return 0;
if(this

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值