黑马程序员——高新技术---Java基础-集合特点和数据结构总结
来源:互联网 发布:js给dom添加属性 编辑:程序博客网 时间:2024/05/07 05:28
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
Collection接口:
|---List有序,可以存储重复元素
|----ArrayList数组实现,线程不安全,效率高
|----Vector 数组实现,线程安全,效率低
|----LinkedList链表实现,线程不安全,效率高
|---Set无序,不能存储重复元素
|---HashSet哈希表实现,线程不安全,效率高
保证唯一性:hashcode()和equals()方法
|--LinkedHashSet链表,哈希表实现,线程不安全,效率高
|----TreeSet 树实现,线程不安全,效率高
对元素排序的,要排序,就要比较,比较方式:
1,自然排序:我们的类要实现Comparable接口,重写comparaTo()方法。
2,我们的类不需要实现任何接口,自定义一个比较器,实现Comparator接口,重写compare()方法
实例化TreeSet时,传递自定义比较器对象。
Map接口:双列集合,使用键值对存储
|----HashMap哈希表实现,线程不安全,效率高
保证键的唯一性,同Hashset
|---TreeMap树实现,线程不安全,效率高。
对键的排序,同TreeSet
|----LinkedHashMap链表、哈希表实现,线程不安全的,效率高。
|----Hashtable哈希表实现,线程安全,效率低。
数据结构:
1,数组:查询快。增删慢
2,链表:查询慢,增删快
3,栈:后进先出
4,队列:先进先出
5,哈希表:综合了数组和链表的优点,查询、增删都很快
6,第一个存储的作为根节点,再存储元素时,要跟已存元素比较,比已存元素大,存在当前节点的右侧,比已存元素小,存在当前节点的左侧。如果相等则不存。
集合的选择:(如何选择使用哪种集合?)
需要单列还是双列?
单列:Colllection:
有序:List:
经常查询,但不经常修改:ArrayList (单线程,快)Vector(多线程,慢)
经常修改元素的数量:LinkedList
无序:Set:
是否需要排序?
不要排序:HashSet(无序) LinkedHashSet(有序)
需要排序:TreeSet
双列:Map:
不要排序:HashMap,LinkedHashMap
排序:TreeMap
各种集合的遍历方式:
Collection:
1,toArray()
2,迭代器 iterator
3,增强for
|---List
4,使用Collection的size()和List的get(int indec)方法使用普通for循环
List特有的迭代器ListIterator
|----Set
(无)
Map:
1,KeySet()-->遍历Set(键)
2,entrySet()-->遍历Set<Map.Entry>
普通for循环和增强for循环的区别:
增强for循环没有普通循环变量
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
- 黑马程序员——高新技术---Java基础-集合特点和数据结构总结
- 黑马程序员-Java基础总结15——高新技术Day01
- 黑马程序员—12.、JAVA基础&高新技术
- 黑马程序员——高新技术---Java基础-集合框架-集合Collection,List
- 黑马程序员:Java基础——List集合共性方法,Iterator迭代和集合具体对象的特点
- 黑马程序员——Java高新技术——集合
- 黑马程序员—java高新技术
- 黑马程序员-Java基础总结16——高新技术Day02(JavaBean、注解与泛型)
- 黑马程序员——Java基础加强—高新技术
- 黑马程序员——高新技术---Java基础-IO流
- 黑马程序员——高新技术---Java基础-多线程1
- 黑马程序员——高新技术---Java基础-多线程2
- 黑马程序员——高新技术---Java基础-GUI编程
- 黑马程序员——高新技术---Java基础-网络编程
- 黑马程序员——高新技术---Java基础-反射
- 黑马程序员 Java基础 ---> 高新技术
- 黑马程序员————java基础--------集合之set接口的特点及应用
- 黑马程序员——Java基础---集合总结
- HDU 5317 RGCDQ
- poj 3256 dfs水(牛要聚会)
- 求平均数,并输出大于平均数的输入值
- hdu 5326 Work(水)
- hdoj2003求绝对值
- 黑马程序员——高新技术---Java基础-集合特点和数据结构总结
- cmd命令中遇到文件路径中含有空格
- IOS开发概述-06.AppDelegate对象
- shell学习五十三天----捕获信号trap
- Android应用App开发工具
- (九十五)音效播放方法和工具类的制作
- 图像手工画效果【QT+OpenCV】
- cocos2d-x 入门游戏:许特尔图_3 of 4
- js callee和call写递归