Collection类及常用API
1.1
Collection--类集工具类,定义了若干用于类集和映射的算法,这些算法被定义为静态方法
1.2 提供的常用静态方法有:
public static void sort(List <T> list)//对容器进行排序
public static int binarySearch(List <T> list ,T key)//二分查找法
public static void reverse(List <?> list)//对容器内的元素进行反转
public static void shuffle(List <?> list)//把容器内的元素顺序打乱
public static void swap(List <?> list, int i, int j)//吧容器内的元素交换
public static <T> void fill(List <? super T> list,T obj)//替换
2 Collection和 Collections得区别
2.1 Collections是个类,里面提供了很多静态方法,专门为 Collection接口的实现类服务
Collection只是集合中
层次结构
中的根接口,里面提供了很多方法,让他的实现类去实现他的子接口有list接口set接口和其他的一些接口,map接口不是Collection接口的集合;
Collection这个接口没有提供构造方法,但是提供了很多静态方法,静态方法的好处就是可以直接通过 类名。方法名 来调用。
1 set容器的特点
1.1 set容器是一个不包含重复元素的collection,并且最多包含一个null元素,他和list容器相反,set容器不能保证其元素的顺序。
1.2 最常用的两个set接口的实现类时hashset和treeset
2 HashSet及其常用API
2.1 HashSet扩展abstractset并且实现set接口
2.2 HashSet使用散列表(又称哈希表)进行存储
2.3
HashSet构造方法
HashSet();//没有参数的构造方法
HashSet(Collection c);//有一个参数的构造方法
HashSet(int capacity);//
HashSet(int capacity ,float fillRatio);//
2.4 HashSet没有定义任何超过他的父类和接口提供的其他方法
2.5 散列集合没有确保其元素的顺序,因为散列处理通常不参与排序
3 总结
HashSet的内部操作的底层数据是HashMap,只是操作的是HashMap的 key(键)
4 TreeSet及常用API
4.1 TreeSet为使用树来进行存储的set接口提供了一个工具,对象按升序存储,访问和检索很快
4.2 在存储了大量的需要进行快速检索的排序信息的情况下,TreeSet是一个很好的选择
4.3
构造方法
TreeSet();
TreeSet(Collection c);
TreeSet(comparator comp);
TreeSet(sortedset ss);//
5总结
TreeSet的内部操作的底层数据是 TreeMap,只是我们操作的是
TreeMap的key
映射(map)
是一个存储键值对的对象,给定一个键,可以查询得到他的值,键和值 都是对象,键必须是唯一的,值可以重复;
有些映射可以接收null键和null值,而有的则不行;
下面的接口支持映射;
map:映射唯一关键字给值
map.entry:描述映射中的元素(关键字或者值对)这是map 的一个内部类
sortedmap:扩展map以便关键字按升序保持
map接口映射唯一键值
键(key)
是以后用于检索值的对象。给定一个键和一个值,可以存储这个值到一个map对象中,以后可以使用对应键检索他
map接口定义的方法
int size();map中一共有多少键值对
boolean isempty():判断容器是否为空
boolean containskey(object key);判断容器里是否有对应的键
boolean
containsvalue(object value);判断容器里是否有对应的值
v get(object key);根据键获取对应的值
v put(K key ,v value);把键值对添加到map中
v remove(object key);移除map中对应的key
collection<V> values();获取map中所有的值
set<map。entry<k ,v>> entryset();返回包含的映射关系的set视图
map接口详解:
1:map。entry接口代表映射项(键-值对)类型,是map的嵌套类型:
2:
map接口定义的entryset()方法返回包含映射项entry的集合(set),
集合中元素是 map。entry类型
3:map。entry接口定义的方法
k getkey():获取键
v getvalue();获取值
v setvalue(v value);设置值
hashmap及常用API
hashmap类是基于哈希表的map接口的实现,并允许使用null键和null值
构造方法
hashmap();无参的默认构造方法
hashmap(map m):构造一个与指定map相同的方法
hashmap(int capacity):
带有一个整型参数的构造方法带有指定初始容量大小的hashmap
hashmap(int capacity,float fillratio):
带有一个整型参数的构造方法带有指定初始容量大小和加载因子的hashmap
hashmap实现map并扩展abstractmap,本身并没有增加任何新的方法
散列映射不保证他的元素的顺序,元素加入散列映射的顺序并不一定是他们被迭代读出的顺序
哈希码的产生和使用
当调用对象的hashcode()方法时就会返回当前对象的哈希码值,支持此方法是为了提高哈希表的性能
hashcode的常规协定:
1:在Java应用程序执行期间,在对同一对象多次调用hashcode方法时,必须一致地返回相同的整数,前提是将对象进行equals比较时所用的信息没有被改变,从某一应用程序的一次执行到同一应用程序的另一次执行该整数无需保持一致。
2:如果根据equals(object)方法,两个对象是相等的,那么对这两个对象中的每一个对象调用hashcode方法都必须生成形同的整数结果;
注意:这里说的equals(object)方法是指object类中未被子类重写过的equals方法
3:如果根据equals方法,两个对象不相等,那么对这两个对象中的任意一个对象上调用hashcode方法不要求一定生成不同的整数结果。但是,程序员应该意识到为不相等的对象生成不同整数结果可以提高哈希表性能。
Treemap及常用API
1: treemap类通过使用红黑树实现map接口
2: treemap提供按排序顺序存储键值对的有效手段,同时允许快速检索
3: 不像散列映射,树映射保证它的元素按关键字升序排列
4:
treemap构造方法
treemap();//无参构造方法
treemap(comparator comp);//
treemap(map m);//
treemap(sortedmap sm);//
5 :treemap 实现sortedmap并且扩展abstractmap,它本身并没有定义其他方法
comparator和comparable接口
treemap的key存储引用类型数据,需要满足一定的条件
1:要么引用类型实现comparable接口
2:要么为该treemap容器提供实现comparator接口的比较器对象(作为treemap构造方法的参数)