我的博客

面试准备阶段笔记--高级特性

                                 集合的整理

      collection 接口是集合类的根接口,java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。

Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都是属于集合类的一部分。

Map包含了Key-val键值对,Map不能包含重复的key,但是可以包含相同的val。

Iteratror,所有的集合类都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:

1.hasNext()返回下一个元素。

2.next()返回下一个元素。

3.remove()删除当前元素。

      几种重要的接口和类简介

1、List(有序,可重复)

List里存放的对象是有序的,同时也是可以重复的,list关注的是索引,拥有一系列和所有相关的方法,查询速度很快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。

ArrayList 不唯一,有序,遍历效率高

LinkedList 插入和删除的效率高

  list接口常用的各种方法:

add,size,get(i),contains:返回true或false,remove

LinkedLIst的特色:addFirst/last();getFirst()/Last();removeFirst/Last();

2、Set(无序、不能重复)

Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单的把对象加入集合中。

HashSet,不能使用for循环遍历

遍历的方式:①迭代遍历,iterator

      ②for each遍历

treeSet是比HashSet多了一个有序排列。

常用的方法:

add(),clear(),isempty(),contains,remove()

3、Map(键值对、键唯一、值不唯一)

map集合中存贮的是键值对,键不能重复,值可以重复。根据键得到值,对Map集合遍历是先得到键的set集合,对set集合进行遍历。得到相应的值。

 

hashmap  和hashtable的区别:

hashmap和Hashtable键值对,但是hashmap允许一个键为null,多个值为null。Hashtable不允许null键和值,它也比较慢他支持线程同步。

 map的遍历方式:

① Iterator<Map.Entry<> it= map.keySet().iterator;//遍历key值

while(it.hasnext()){

  system.out.pritln(it.next());

}

②for each遍历 key

for(Integer in: map.keySet){

syso(in);

}

③推荐使用

for(Map.Entry<> entry :map.entrySet()){

entry.getKey();entry.getValue();

}

 

posted @ 2017-12-11 19:21  孤雁11  阅读(162)  评论(0编辑  收藏  举报