黑马程序员技术交流社区

标题: 第二阶段笔记集合摘要 -石家庄校区黑马JavaEE基础6期 集合... [打印本页]

作者: 1059472218    时间: 2018-1-4 17:20
标题: 第二阶段笔记集合摘要 -石家庄校区黑马JavaEE基础6期 集合...
本帖最后由 小石姐姐 于 2018-1-5 09:11 编辑

第二阶段笔记集合摘要
-石家庄校区黑马JavaEE基础6期

集合Collection
// 增强for循环格式for (元素的数据类型 变量名 : 数组或集合对象) {    // 遍历出来的变量可以直接使用}
Collection接口(单列集合体系的顶层)    |    * boolean add(E e): 添加元素, 添加成功返回true, 否则false    |    * void clear(): 清空集合中的元素    |    * boolean contains(Object o): 判断集合中是否包含指定的对象    |    * boolean isEmpty(): 判断集合中是否没有元素. 与null区分    |    * boolean remove(Object o): 从集合中删除一个元素, 删除成功返回true, 否则false    |    * int size(): 获取集合的长度(元素的数量)    |    * Object[] toArray(): 将集合转换为Object[]数组    |    * Iterator<E> iterator(): 获取集合的迭代器对象    |- List接口(有序, 可重复, 有索引)        |    * void add(int index, E e): 添加元素到指定索引上        |    * E remove(int index): 删除索引上的元素, 并返回        |    * E set(int index, E e): 修改指定索引上的元素, 并返回被替换的元素        |    * E get(int index): 获取指定索引上的元素        |    * ListIterator listIterator(): 获取List特有的迭代器对象        |- ArrayList类(底层是数组, 查询快, 增删慢)        |- LinkedList类(底层是链表, 查询慢, 增删快)                * void addFirst(E e): 添加元素到集合的开头                * void addLast(E e): 添加元素到集合的末尾                * E getFirst(): 获取集合开头的元素                * E getLast(): 获取集合末尾的元素                * E removeFirst(): 删除开头的元素, 并返回                * E removeLast(): 删除末尾的元素, 并返回Iterator接口    |    * boolean hasNext(): 判断是否有下一个元素    |    * E next(): 获取下一个元素    |    * void remove(): 删除迭代器返回的最后一个元素    |- ListIterator接口            * void add(E e): 使用迭代器添加元素到集合            * void remove(): 使用迭代器删除元素
------------------------------------------------------------------------
Set接口,继承collection接口
HashSet,    Set的实现类 (自己总结:Set中的元素默认是根据其值的hash值从大到小排序)


Collections工具类



Map集合

      概述(public interface Map<K,V>)
常用方法一
常用方法二

Map集合的两种遍历方式:


Set<String> key = map.keySet();
                for (String string : key) {
                        String value = map.get(string);
                        System.out.println(string + "=" + value);
                }




Set<Entry<String, String>> entrySet = map.entrySet();
                for (Entry<String, String> entry : entrySet) {
                        //System.out.println(entry);
                        String key = entry.getKey();
                        String value = entry.getValue();
                        System.out.println(key+ "=" + value);
                }
        
Map嵌套Map
Map< K , Map<K, V>>
先遍历第一个Map,拿到所以的K,然后用K得到所有的Map集合并遍历
//通過keySet()方法遍歷
                Set<String> keySet = itheima.keySet();
                for (String key : keySet) {
                        System.out.println(key);
                        Map<String, String> map = itheima.get(key);
                        Set<String> keySet2 = map.keySet();
                        for (String string : keySet2) {
                                System.out.println(string+"="+map.get(string));
                        }
                        
                        
                }
//通过 entrySet方法遍历
Set<Entry<String, Map<String, String>>> entrySet = itheima.entrySet();
                for (Entry<String, Map<String, String>> entry : entrySet) {
                        System.out.println(entry.getKey());
                        Map<String, String> value = entry.getValue();
                        
                        Set<Entry<String, String>> entrySet2 = value.entrySet();
                        for (Entry<String, String> entry2 : entrySet2) {
                                System.out.println(entry2.getKey()+"="+entry2.getValue());
                        }
                }




Map嵌套Collection
Map<K, Collection<E>>
先遍历第一个Map,拿到所以的K,然后用K得到所有Collection集合并遍历


//用Set<K> keySet()方法遍历
                Set<String> classNames = itheima.keySet();
                for (String className : classNames) {
                        System.out.println(className);
                        Set<Student> students = itheima.get(className);
                        for (Student student : students) {
                                System.out.println(student.getId()+"="+student.getName());
                        }
                        
                        
                }
               
//用Set<Map.Entry<K, V>>  entrySet()方法遍历
Set<Entry<String, Set<Student>>> classNames = itheima.entrySet();
for (Entry<String, Set<Student>> className : classNames) {
System.out.println(className.getKey());
Set<Student> students = className.getValue();
for (Student student : students) {
                                                              System.out.println(student.getId()+"="+student.getName());
                                
                        }
                        
                }


可变参数(数据类型明确,长度不明确时用)











欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2