A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

樊祺

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 樊祺 初级黑马   /  2017-12-13 12:26  /  2456 人查看  /  34 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合的体系结构:
由于不同的数据结构, Java为我们提供了不同的集合,但是不同的集合他们的功能都是相似,不断的向上提取,将共性抽取出来,这就是集合体系结构形成的原因。
体系结构:
         Collection   单列集合顶层接口
                  List   有索引,可以重复,存取有序
                          ArrayList   数组    数组:查询快,增删慢。
                          LinkedList          链表    链表:查询慢,增删快.
                          //Vector
                  Set            没有索引,元素唯一,存储无序
                          HashSet
                                   LinkedHashSet元素唯一,存取有序
Map  双列集合顶层接口
                  HashMap 键值对,键唯一,没有索引,存取无序
                           LinkedHashMap 存取有序
集合体系中每层特有的方法
Collection
                  booleanadd(Object e) 添加元素
                  voidclear()               清空元素
                  booleancontains(Object o) 判断集合中是否包含指定的元素
                  booleanisEmpty()  判断集合是否为空
                  booleanremove(Object o)     删除指定的元素
                  intsize()                    获取集合的长度
                  Object[]toArray()   将集合转换成Object类型的数组
                  Iteratoriterator() 获取迭代器对象
List
                  voidadd(int index, E element)  在指定位置上添加指定的元素
                  Eget(int index)        获取指定位置的元素
                  Eremove(int index)         删除指定位置的元素
                  Eset(int index, E element)     修改指定位置的元素
                  ListIterator<E>listIterator()获取列表迭代器
LinkedList
                  voidaddFirst(E e)  在最前面添加元素
                  voidaddLast(E e) 在最后面添加元素
                  EgetFirst()    获取第一个元素
                  EgetLast()     获取最后一个元素
                  EremoveFirst() 删除第一个元素
                  EremoveLast()         删除最后一个元素
Hashset的唯一性原理
hashCode方法:
                          不重写,Object中。返回的是该对象的内存地址。
                          重写,如何重写?
                                   保证相同成员变量的对象的哈西值相等的。
                                   尽量保证不同成员变量的对象的哈希值不同。
                                   操作:使用Eclipse生成。
                  equals方法:
                          不重写,Object中。比较的是两个对象的地址值。
                          重写,如何重写?
                                   比较两个对象的每一个成员变量的值。
                                   如果都相同则两个对象相同,如果有不同的,两个对象就不同。
   规则:新添加到HashSet集合的元素都会与集合中已有的元素一一比较
        首先比较哈希值(每个元素都会调用hashCode()产生一个哈希值)
             如果新添加的元素与集合中已有的元素的哈希值都不同,新添加的元素存入集合
             如果新添加的元素与集合中已有的某个元素哈希值相同,此时还需要调用equals(Object obj)比较
                   如果equals(Object obj)方法返回true,说明新添加的元素与集合中已有的某个元素的属性值相同,那么新添加的元素不存入集合
                   如果equals(Object obj)方法返回false, 说明新添加的元素与集合中已有的元素的属性值都不同, 那么新添加的元素存入集合
Map 双列集合顶层接口               
                  使用map集合存储自定义对象作为key,如何保证元素唯一?
                  重写自定义类的hashCode方法和equals方法。
                  
                  Vput(K key,V value) 添加元素,返回被覆盖的value
                  Vget(K key) 根据键查找并返回对应的value
                  booleancontainsKey(K key) 判断集合中是否包含指定的键
                  booleancontainsValue(V value) 判断集合中是否包含指定的值
                  Set<K>keySet() 获取到map集合中所有的键
                  Collection<V>values() 获取到map集合中所有的值
                  Set<Entry<K,V>>entrySet() 获取到map集合中所有的键值对对象。
集合的遍历方式
         单列:
                  .转数组 Object[]toArray()
                  .迭代器
                          1.获取迭代器对象Iterator it = 集合.iterator();
                          2.使用while循环,如果有元素就获取,没有元素则停止循环
                                   while(it.hasNext()){
                                            System.out.println(it.next());//获取元素并打印
                                   }
                  .增强for
                          for(容器中元素的数据类型  变量名 : 容器名){
                                   //遍历出来的每一个元素会存储在这个变量名中。
                          }
         双列:
                  Map集合的遍历方式:
                          键找值:keySet()
                                   增强for
                                   迭代器
                          键值对:entrySet()
                                   增强for
                                   迭代器

34 个回复

正序浏览
Lee0 初级黑马 2017-12-14 19:27:38
35#
都快忘了集合怎么用了,正好复习了一波
回复 使用道具 举报
集合是面试中常问的
回复 使用道具 举报
呵呵哈哈256 来自手机 初级黑马 2017-12-14 08:37:17
33#
整的好!!
回复 使用道具 举报
王瑞楠 来自手机 初级黑马 2017-12-14 08:31:18
32#
感谢同学又帮我们复习了一遍集合的部分方法和基础知识
回复 使用道具 举报
Zzz丶 初级黑马 2017-12-14 00:25:08
31#
诶嘿?正好忘差不多了,这总结的时间真好
回复 使用道具 举报
JavaDeveloper 来自手机 初级黑马 2017-12-13 23:11:46
30#
非常的全面,常用的都能涉及到,以后忘了可以回来看看
回复 使用道具 举报
ycbin 来自手机 初级黑马 2017-12-13 22:55:08
29#
很全面值得学习
回复 使用道具 举报
ycbin 来自手机 初级黑马 2017-12-13 22:54:09
28#
很全面值得学习
回复 使用道具 举报
pyx0812 来自手机 初级黑马 2017-12-13 22:52:08
27#
看一遍复习一遍,总能发现新的问题
回复 使用道具 举报
weiyipeng123456 来自手机 初级黑马 2017-12-13 22:47:22
26#
学wb都快忘了别的了让我回忆回忆
回复 使用道具 举报
武来彬 来自手机 初级黑马 2017-12-13 22:44:36
25#
集合的方法整理的很全  
回复 使用道具 举报
感谢,看了又复习一遍,非常受用
回复 使用道具 举报
nighhr 来自手机 初级黑马 2017-12-13 22:20:20
23#
怀旧贴。。  挺不错的
回复 使用道具 举报
nighhr 来自手机 初级黑马 2017-12-13 22:19:42
22#
怀旧了。。
回复 使用道具 举报
聆听者 来自手机 初级黑马 2017-12-13 22:18:34
21#
很实用啊,集合学到哪里都有用,必须好好学,扎扎实实的,谢谢整理
回复 使用道具 举报
集合忘得差不多了 这一回能捡起来一点
回复 使用道具 举报
骑士冈布奥 来自手机 初级黑马 2017-12-13 22:16:06
19#
每天看一贴,学习不愁苦
回复 使用道具 举报
骑士冈布奥 来自手机 初级黑马 2017-12-13 22:15:30
18#
每天看一帖,学习不犯愁
回复 使用道具 举报
synchronize 来自手机 初级黑马 2017-12-13 22:10:09
17#
entryValue
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马