黑马程序员技术交流社区
标题: 【哈尔滨校区】集合小结 [打印本页]
作者: ycbin 时间: 2017-12-4 19:04
标题: 【哈尔滨校区】集合小结
集合小总结:
1、集合体系:
集合:单列集合(Collection)
List: 有索引,可以重复,存取有序
ArrayList:底层是数组
LinkedList:底层是链表
Set: 没有索引,元素唯一,存储无序
HashSet:元素唯一,存储无序
LinkedHashSet:元素唯一,存取有序
双列集合(Map<K,V>)
HashMap:键唯一,值任意,存储无序
LinkedHashMap:键唯一,值任意,存储有序
Hashtable:键与值可以为Null
Properties:键与值都是String类型,一般与IO结合使用
2、集合中的方法:
2.1单列集合:
2.1.1 Collection接口
boolean add(Object e) 添加元素
int size() 获取集合的长度
void clear() 清空元素
boolean contains(Object o) 判断集合中是否包含指定的元素
boolean isEmpty() 判断集合是否为空
boolean remove(Object o) 删除指定的元素
Object[] toArray() 将集合转换成Object类型的数组
<T> T[] toArray(T[] a) 将集合转换成指定类型的数组
Iterator iterator() 获取迭代器对象
2.1.1.1List接口
void add(int index, Eelement) 在指定位置上添加指定的元素
E get(int index) 获取指定位置的元素
E remove(int index) 删除指定位置的元素
E set(int index, E element) 修改指定位置的元素
ListIterator<E> listIterator()获取列表迭代器(解决并发修改异常)
2.1.1.1.1 ArrayList实现类的方法参考List接口方法
2.1.1.1.2 LinkedList实现类
void addFirst(E e) 在最前面添加元素
void addLast(E e) 在最后面添加元素
E getFirst() 获取第一个元素
E getLast() 获取最后一个元素
E removeFirst() 删除第一个元素
E removeLast() 删除最后一个元素
2.1.2 Set接口、HashSet 实现类、LinkedHashSet实现类的方法使用参考Collection接口方法即可。
2.2双列集合:
2.2.1 Map常用功能
V put(K key, V value) :以键=值的方式存入Map集合
V get(Object key):根据键获取值
int size():返回Map中键值对的个数
booleancontainsKey(Object key):判断Map集合中是否包含键为key的键值对
boolean containsValue(Object value):判断Map集合中是否包含值为value键值对
boolean isEmpty():判断Map集合中是否没有任何键值对
void clear():清空Map集合中所有的键值对
Vremove(Object key):根据键值删除Map中键值对
Set<Map.Entry<K,V>> entrySet():将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回
Set<K>keySet() :将Map中所有的键装到Set集合中返回
Collection<V>values():返回集合中所有的value的值的集合
2.2.1.1 HashMap、LinkedHashMap参考Map接口即可
2.2.2Hashtable的实现类Properties
与IO流结合的特有方法(对配置文件的读与写):
void list(PrintStream out) 将属性列表输出到指定的输出流(不常用)。
void list(PrintWriter out) 将属性列表输出到指定的输出流(不常用)。
void load(InputStreaminStream) 从输入流中读取属性列表。
void load(Reader reader)从输入字符流中读取属性列表
void store(OutputStream out, String comments)将此 Properties表中的属性列表写入输出流。
void store(Writer writer, String comments)将此 Properties表中的属性列表写入输出字符。
ObjectsetProperty(String key, String value) 调用 Hashtable 的方法 put。
String getProperty(Stringkey) 用指定的键在此属性列表中搜索属性。
Set<String>stringPropertyNames() 返回此属性列表中的键集
3.集合的遍历
3.1单列集合:
List:转数组,普通for ,增强for,迭代器
Set: 转数组,增强for,迭代器
3.2 双列集合:一、获取所有的key,通过key来获取value
Set<String> keys = hm.keySet();
for (Stringkey : keys) {
Stringvalue = hm.get(key);
System.out.println(key+ "=" + value);
}
二、获取所有的结婚证对象,然后通过结婚证对象获取丈夫和媳妇
Set<Map.Entry<String,String>> entrys = hm.entrySet();
for (Map.Entry<String,String> entry : entrys) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key +"=" + value);
}
作者: 峨眉山吴彦祖 时间: 2017-12-5 10:46
写的真不错,大气上档次,内容涵盖的非常全面,我对此贴主的敬仰有如滔滔江水连绵不绝.
点赞,么么哒.
作者: 15846125943 时间: 2017-12-5 10:59
总结挺详细 不够我好像忘了一些
作者: synchronize 时间: 2017-12-5 11:01
vector哭了
作者: nighhr 时间: 2017-12-5 11:02
Properties是一对一 xml是一对多。。 目的都是用于存储
作者: 王宇航 时间: 2017-12-5 11:03
使用迭代器进行遍历时 如果需要调用两次集合中的变量时,应该将此变量赋值给另一个变量,而不是使用两次.next
作者: 峨眉山吴彦祖 时间: 2017-12-5 11:46
你是想说指针问题吗?还是什么意思/
作者: weiyipeng123456 时间: 2017-12-5 13:02
感谢你让我回顾了一起的知识 要不是这样我都快忘掉了;
作者: pyx0812 时间: 2017-12-5 13:19
Hashtable感觉完全没有印象了,就知道有这么个东西,还是欠练啊
作者: 为学日益者 时间: 2017-12-5 14:19
总结的灰常好,脉络清晰,面面俱到(手动点赞).
谢谢分享!
作者: 学员123 时间: 2017-12-5 15:12
写的很多 内容很全
作者: 学员123 时间: 2017-12-5 15:13
内容详细 值得鼓励 我要向你 努力学习
作者: Lee0 时间: 2017-12-5 18:53
Hashtable的键与值不能为null
Hashmap的键和值可以为null
作者: lin632854170 时间: 2017-12-5 19:21
清晰简洁 一阵见血 写的很通俗,一看就懂 ,很容易理解 ,受益不浅
作者: 刘昌昊 时间: 2017-12-5 19:29
ArrayList查询快,增删慢。线程不安全,效率高。LinkedList查询慢,增删快。线程不安全,效率高。Vector底层数据结构是数组,查询快,增删慢。线程安全,效率低。
作者: 刘汉国 时间: 2017-12-5 19:29
总结的真好,值得学习
作者: 小鹿哥 时间: 2017-12-5 21:46
补充:HashMap可以有空键值对
作者: JavaDeveloper 时间: 2017-12-5 22:08
对集合的总结比较详细,常用的都概述到了,很好
作者: 天敬沅 时间: 2017-12-5 22:09
不错不错,非常受用!
作者: 陈鑫- 时间: 2017-12-5 23:00
看着对自己很有帮助
作者: 陈鑫- 时间: 2017-12-5 23:02
都有点忘记了 ,看了一遍很有帮助
作者: 恋爱不如敲代码 时间: 2017-12-5 23:15
Hashtable:键与值可以为Null 这个在什么地方会用到啊
作者: 聆听者 时间: 2017-12-5 23:31
很详细的笔记啊,看完收获很多,觉得自己也是时候回头看看了,真的忘记了很多,多到想不起来有多少了,谢谢同学辛苦的内容分享给大家
作者: 王瑞楠 时间: 2017-12-5 23:33
有一些地方都忘了啊 ,比如遍历集合这,貌似每次都是用keySet() 很少用entrySet(),导致刚上边看到 entrySet() 这个的时候一下就蒙住了,看了半天才反应过来,还有个问题,是向Map集合中添加元素时如果出现相同的键,就会用后一次添加的值把前一次添加的值覆盖掉,是这样吧
作者: 潘慧峰 时间: 2017-12-5 23:36
总结的很全面。什么时候需要使用什么一看便知。赞
作者: Vampire军哥 时间: 2017-12-5 23:52
总结的比较全面,也是我们应该掌握的,挺有用的
作者: demo_jean 时间: 2017-12-6 07:56
map集合的设计者,太牛了。
作者: 李兴男JavaEE6期 时间: 2017-12-6 08:24
还挺不错的让我回想起了当初的内容
作者: Zzz丶 时间: 2017-12-6 08:53
很多集合的内容都忘的差不多了,正好有个帖子能帮着复习一下
作者: 张斯佳 时间: 2017-12-6 16:56
有细心的同学发现了问题哦,大家看帖子也要细心哦
作者: 杨露露老师 时间: 2017-12-6 16:59
不错,带大家回顾了一下以前的知识点。
作者: 黑马与你同在 时间: 2017-12-6 17:18
作者: 870263491 时间: 2017-12-7 08:50
集合的系统整理,有条理很棒
作者: 870263491 时间: 2017-12-7 08:50
ycbin 发表于 2017-12-4 19:04
集合小总结:1、集合体系:集合:单列集合(Collection) List: 有索引 ...
集合的系统整理很棒
作者: 桃染朱砂 时间: 2017-12-7 10:48
总结的真好,看了很有帮助
作者: 骑士冈布奥 时间: 2017-12-7 13:38
又是一波复习,我好不努力啊。。。
作者: Lust 时间: 2017-12-7 23:04
文本整洁,词汇清晰,详细的有点让人看不下去,已收藏为笔记的一部分
作者: 敲代码--- 时间: 2017-12-8 08:28
点赞,总结 的很全面,自己还得好好努力啊
作者: 15846125943 时间: 2017-12-13 20:30
感谢分享 老铁
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |