黑马程序员——集合框架总结
2015-03-01 14:07
155 查看
Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
集合的根类是Collection
|——List 元素有序的,元素可以重复。该集合体系有索引
|——ArrayList:底层的数据结构使用的是数组结构。特点:查询速度快,但增删稍 慢,线程不同步
|——LinkedList:底层的数据结构是链表数据结构。特点:增删速度快,查询稍慢
|——Vector:底层是数组数据结构。线程同步,已被ArrayList替代
|——Set:元素是无序的(存入和取出的顺序不一定一致),元素不可以重复。
|——TreeSet可以对Set集合中的元素进行排序。 当主要条件一样时,一定要判断一下次要条件
|——HashSet:底层的数据结构式哈希表。线程是非同步的
HashSet是如何保证元素唯一性的呢?
是通过元素的两个方法:hashCode和equals来完成的
如果元素的hashCode值相同,才会判断equals是否为true
如果元素的hashcode值不同,才会调用equals
注意,对于判断元素是否存在,删除,添加等操作依赖的方法是hashcode和 equals方法
List特有的方法。凡是可以操作角标的方法都是该体系的方法。
增:
add(index,element);
addAll(index,Collection);
删:
remove(index);
改:
set(index,element);
查:
get(index);
subList(from,to);
listIterator();
int indexOf(obj);获取obj元素所在的位置。
ListItertor listIterator();
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。
HashMap 的存储实现
当程序试图将多个 key-value 放入 HashMap 中时示例代码: HashMap 类的 put(K key , V value)
HashMap<String , Double> map = new HashMap<String , Double>();
map.put("语文" , 80.0);
map.put("数学" , 89.0);
map.put("英语" , 78.2);
HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置。
当程序执行 map.put("语文" , 80.0); 时,系统将调用"语文"的 hashCode() 方法得到其 hashCode 值——每个 Java 对象都有 hashCode() 方法,都可通过该方法获得它的 hashCode 值。得到这个对象的 hashCode 值之后,系统会根据该 hashCode 值来决定该元素的存储位置。
集合的根类是Collection
|——List 元素有序的,元素可以重复。该集合体系有索引
|——ArrayList:底层的数据结构使用的是数组结构。特点:查询速度快,但增删稍 慢,线程不同步
|——LinkedList:底层的数据结构是链表数据结构。特点:增删速度快,查询稍慢
|——Vector:底层是数组数据结构。线程同步,已被ArrayList替代
|——Set:元素是无序的(存入和取出的顺序不一定一致),元素不可以重复。
|——TreeSet可以对Set集合中的元素进行排序。 当主要条件一样时,一定要判断一下次要条件
|——HashSet:底层的数据结构式哈希表。线程是非同步的
HashSet是如何保证元素唯一性的呢?
是通过元素的两个方法:hashCode和equals来完成的
如果元素的hashCode值相同,才会判断equals是否为true
如果元素的hashcode值不同,才会调用equals
注意,对于判断元素是否存在,删除,添加等操作依赖的方法是hashcode和 equals方法
List特有的方法。凡是可以操作角标的方法都是该体系的方法。
增:
add(index,element);
addAll(index,Collection);
删:
remove(index);
改:
set(index,element);
查:
get(index);
subList(from,to);
listIterator();
int indexOf(obj);获取obj元素所在的位置。
ListItertor listIterator();
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。
HashMap 的存储实现
当程序试图将多个 key-value 放入 HashMap 中时示例代码: HashMap 类的 put(K key , V value)
HashMap<String , Double> map = new HashMap<String , Double>();
map.put("语文" , 80.0);
map.put("数学" , 89.0);
map.put("英语" , 78.2);
HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置。
当程序执行 map.put("语文" , 80.0); 时,系统将调用"语文"的 hashCode() 方法得到其 hashCode 值——每个 Java 对象都有 hashCode() 方法,都可通过该方法获得它的 hashCode 值。得到这个对象的 hashCode 值之后,系统会根据该 hashCode 值来决定该元素的存储位置。
相关文章推荐
- 黑马程序员_JavaAPI——集合框架笔记总结
- 黑马程序员--07.集合框架--02. 重写HashCode的内存变化过程以及两种重写hashCode方式的比较【个人总结】
- 黑马程序员 Java面向对象——集合框架总结
- 黑马程序员_【总结】_集合框架知识梳理4_(end)
- 黑马程序员_【总结】_集合框架知识梳理1
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数
- 黑马程序员-----集合框架总结笔记一
- 黑马程序员---一DAY17总结--java中你必须掌握的集合框架技术
- 黑马程序员--(Map与集合框架工具类的知识总结)
- 黑马程序员——集合框架知识点总结
- 黑马程序员:Java基础总结----集合框架的工具类
- 黑马程序员 集合框架 总结
- 黑马程序员-集合框架总结
- 黑马程序员-Java基础总结08——集合与集合框架(…
- 黑马程序员-------集合框架总结笔记三
- 黑马程序员--07.集合框架--并发访问异常理解:一个单线程程序的多线程运行思想【个人总结】
- 黑马程序员---回顾之集合框架总结
- 黑马程序员_集合框架总结
- 黑马程序员_【总结】_集合框架知识梳理3
- 黑马程序员_java 集合框架学习总结