黑马程序员之java--集合框架总结
2014-03-15 21:48
543 查看
------- android培训、java培训、期待与您交流! ----------
|--collection: 集合框架
|--List :有序的列表集合,允许重复元素,提供集合的基本操作,增删查改
|--Vector: 可变的数组结构,同步,执行效率低,一般有ArrayList替代
|--ArrayList: 可变的数组结构,不同步,增删较慢,但查询很快
|--LinkedList: 链表结构,不同步,增删很快,但查询很慢,可用于堆栈、队列中
|--Set : 不可重复元素,不保证顺序,最多一个null,取出方式只有一种:迭代器
|--HashSet:哈希结构,不同步,保证元素唯一性依赖于:hashcode和equals方法,但查询速度比数组快
在存储元素时,先计算元素的哈希值(hashCode()),由哈希值确定元素的位置。
如果存储的元素哈希值相同,也就是哈希冲突,解决方法是会执行equals方法判断元素的内容是否相同,是则不存,否则就链接存储
由此可见,在存储对象的时候,确定对象是否相同,则要重写该对象的hashcode方法和equals方法
在查找该元素,直接找该元素的哈希值就可以确定。
|--linkedHashSet : 保证元素的唯一性又保持有序
|--TreeSet:二叉树结构,对set集合的元素自动排序。但如何保证唯一性呢?
使用对象的比较方法,返回0表示相同就不存元素
元素的排序比较有两种方式:
1、元素本身的自然排序,也就是实现了comparable接口的compareTo方法
如果元素本身不具备自然排序或是具备的自然排序不是需求的,那就使用第二种比较方式
2、比较器排序:也就是在新建TreeSet集合时,在构造方法中传入比较器对象。
需要定义一个类实现comparator接口中的compare方法
到此为止,需要集合存储对象,需要该对象重写hashcode()、equals()和实现comparable接口,实现自然排序,
通常也会重写toString()
|--Map:双列集合框架
|--HashTable: 哈希表结构,是同步的,但不能使用Null作为键和值,但被HashMap替代
|--Properties:属性集,键和值都是字符串,可以使用流操作
|--HashMap: 哈希表结构,非同步的,可以使用Null作为键和值
|--LinkedHashMap:基于链表+哈希表,保证map集合有序(存入和取出一致)
|--TreeMap: 二叉树结构,非同步的,保证集合中的键进行排序
注意:1、列表集合使用collentions的迭代器,在迭代时,操作集合中的元素,会引起异常发生
解决办法:列表集合也提供了列表的迭代器,该迭代器可以解决上述问题listIterator
------- android培训、java培训、期待与您交流! ----------
|--collection: 集合框架
|--List :有序的列表集合,允许重复元素,提供集合的基本操作,增删查改
|--Vector: 可变的数组结构,同步,执行效率低,一般有ArrayList替代
|--ArrayList: 可变的数组结构,不同步,增删较慢,但查询很快
|--LinkedList: 链表结构,不同步,增删很快,但查询很慢,可用于堆栈、队列中
|--Set : 不可重复元素,不保证顺序,最多一个null,取出方式只有一种:迭代器
|--HashSet:哈希结构,不同步,保证元素唯一性依赖于:hashcode和equals方法,但查询速度比数组快
在存储元素时,先计算元素的哈希值(hashCode()),由哈希值确定元素的位置。
如果存储的元素哈希值相同,也就是哈希冲突,解决方法是会执行equals方法判断元素的内容是否相同,是则不存,否则就链接存储
由此可见,在存储对象的时候,确定对象是否相同,则要重写该对象的hashcode方法和equals方法
在查找该元素,直接找该元素的哈希值就可以确定。
|--linkedHashSet : 保证元素的唯一性又保持有序
|--TreeSet:二叉树结构,对set集合的元素自动排序。但如何保证唯一性呢?
使用对象的比较方法,返回0表示相同就不存元素
元素的排序比较有两种方式:
1、元素本身的自然排序,也就是实现了comparable接口的compareTo方法
如果元素本身不具备自然排序或是具备的自然排序不是需求的,那就使用第二种比较方式
2、比较器排序:也就是在新建TreeSet集合时,在构造方法中传入比较器对象。
需要定义一个类实现comparator接口中的compare方法
到此为止,需要集合存储对象,需要该对象重写hashcode()、equals()和实现comparable接口,实现自然排序,
通常也会重写toString()
|--Map:双列集合框架
|--HashTable: 哈希表结构,是同步的,但不能使用Null作为键和值,但被HashMap替代
|--Properties:属性集,键和值都是字符串,可以使用流操作
|--HashMap: 哈希表结构,非同步的,可以使用Null作为键和值
|--LinkedHashMap:基于链表+哈希表,保证map集合有序(存入和取出一致)
|--TreeMap: 二叉树结构,非同步的,保证集合中的键进行排序
注意:1、列表集合使用collentions的迭代器,在迭代时,操作集合中的元素,会引起异常发生
解决办法:列表集合也提供了列表的迭代器,该迭代器可以解决上述问题listIterator
------- android培训、java培训、期待与您交流! ----------
相关文章推荐
- 黑马程序员_JavaAPI——集合框架笔记总结
- 黑马程序员_Java第14天知识总结_集合类(集合框架)_Collection_迭代器_List_Set_HashSet
- 【黑马程序员】java集合框架学习总结
- 黑马程序员---一DAY16总结--java中你必须掌握的集合框架技术
- 黑马程序员——Java中集合框架总结
- 黑马程序员 Java面向对象——集合框架总结
- 黑马程序员---一DAY17总结--java中你必须掌握的集合框架技术
- 黑马程序员-Java基础总结08——集合与集合框架(…
- 黑马程序员_java 集合框架学习总结
- 黑马程序员--Java面向对象——集合框架总结
- 黑马程序员 Java学习总结之集合框架(List篇)
- 黑马程序员 Java基础知识总结-j集合框架
- 黑马程序员——java复习总结——集合框架
- 黑马程序员_java基础知识总结(3)集合框架
- 黑马程序员——Java总结(集合框架)
- 黑马程序员——java基础----集合框架知识点总结(一)
- 黑马程序员:Java基础总结----集合框架的工具类
- 黑马程序员———Java基础------集合框架知识点总结(二)
- 黑马程序员 11 Java基础教学 - 11 - 集合框架总结
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数