黑马程序员技术交流社区

标题: 集合相关知识总结 [打印本页]

作者: Bermuda     时间: 2014-8-6 19:52
标题: 集合相关知识总结
本帖最后由 Bermuda  于 2014-8-7 08:06 编辑

集合:
做什么:存取元素,类比数组,只不过根据存的元素不一样分了很多种
Java容器:List, Set, Map 对元素增删改查
保证唯一,就用Set。不保证唯一,就用List
Collection单列集合 Map 双列集合
Conllection:元素无序,允许重复
       添加元素: add ( )
       删除元素:1 clear ( )//清空
2 remove (obj)//删除集合中指定对象,集合长度改变
       判断元素:1 boolean contains (obj) //集合是否包含
2 boolean isEmpyt ( ) //集合中是否有元素
   取元素:Iterator  iterator( ) //迭代器,获取集合中所有元素
           int size ( ) //集合中有几个元素
       ---List:(列表)元素有序,允许重复
增删改查:add(位置,元素)
       remove (index);
   set (index, element)
   get (indx)  //元素第一次出现位置 int indexOf (obj)不存在-1
//反向索引元素位置int lastIndexOf (Object)
迭代器:ListIterator it = list.listIterator;//迭代时可操作元素
---ArrayList
线程不安全,查找快增删慢,底层数组,取元素可用
---LinkedList
线程安全,查找慢增删快,底层链表
---Vector
线程安全已经被ArrayList替代
       ---Set:(集)元素无序,不允许重复
---HashSet
通过Hash值确定唯一性:覆盖HashCode方法
   覆盖equals方法
******
保证元素的唯一,其实就是根据对象的hashCode和equals方法来决定的。如果我们往集合中存放自定义的对象,那么保证其唯一,就必须复写hashCode和equals方法建立属于当前对象的比较方式
---TreeSet
具有比较功能
实现比较两种方法:1自定义比较器
  2使元素具有比较功能
******
TreeSet集合排序有两种方式,Comparable和Comparator区别:
1:让元素自身具备比较性,需要元素对象实现Comparable接口,覆盖compareTo方法。
2:让集合自身具备比较性,需要定义一个实现了Comparator接口的比较器,并覆盖compare方法,并将该类对象作为实际参数传递给TreeSet集合的构造函数。
第二种方式较为灵活。

将比较器对象作为参数传递给TreeSet的构造函数TreeSet(比较器儿子对象),Comparator接口比较器(就两方法compare equals),当两种比较方式都存在时,以比较器为主

双列集合     
Map:(映射)键值不允许重复,以键值对形式存放
      添加元素:put (key,value)
  删除元素:value remove (key)
void clear ( ) //清空
  判断元素:boolean isEmpty( ) //是空吗
boolean containsKey(key)  //是否包含key
boolean containsValue(value)  //是否包含value

  获取元素:int size( ) //返回长度
value get (key)
//键获取值,返回null该键不存在,特例hashmap可存(nullnull)
Collection values():获取map集合中的所有的值。
迭代器:
       Map没有迭代器将Map集合转成Set集合 :
   1 keySet
           2 entrySet

     原理:map中是没有迭代器的,collection具备迭代器,只要将map集合转成Set集合,可以使用迭代器了。之所以转成set,是因为map集合具备着键的唯一性,其实set集合就来自于map,set集合底层其实用的就是map的方法

       ---HashMap
       线程不安全,可存放nullnull值,覆盖HashCode ( )方法,覆盖equals ( )方法
   ---TreeMap
       对元素排序
   排序的两种方法:1使元素具有比较功能
   2自定义比较器
Conllections:操作集合
集合转数组:Collections中的toArray ( )方法

Arrarys:操作数组
数组转集合:Arrays中的asList ( )方法

集合.jpg (172.76 KB, 下载次数: 7)

在网上找的图,感觉画的很好

在网上找的图,感觉画的很好

作者: hjfeng1987    时间: 2014-8-6 20:54
学习了,总结得很好。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2