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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小布丁当 中级黑马   /  2015-11-24 21:42  /  753 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.集合框架的操作
        1.集合框架(去除ArrayList中重复字符串元素方式)(掌握)
                a.案例演示
                        * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
                        * 思路:创建新集合方式,遍历原数组中的内容,如果新的集合中不包含该元素,就将该元素添加到新数组中,最后返回新数组
                       
        2.集合框架(去除ArrayList中重复自定义对象元素)(掌握)
                a.案例演示
                        * 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)               
                b.思路:建新集合方式,遍历原数组中的内容,如果新的集合中不包含该元素,就将该元素添加到新数组中,最后返回新数组
                c.注意事项
                        * 重写equals()方法的,判断集合中是否包含元素要调用contains方法,而contains方法会调用集合中添加元素的equals方法
               

        3.集合框架(LinkedList的特有功能)(掌握)
                a.LinkedList类概述
                b.LinkedList类特有功能
                        * public void addFirst(E e)                         :将指定元素插入此列表的开头。
                        * public void addLast(E e)                          :将指定元素添加到此列表的结尾。
                        * public E getFirst()                               :返回此列表的第一个元素。
                        * public E getLast()                                :返回此列表的最后一个元素。
                        * public E removeFirst()                            :移除并返回此列表的第一个元素。
                        * public E removeLast()                             :移除并返回此列表的最后一个元素。
                        * public E get(int index)                           :返回此列表中指定位置处的元素。

        4.集合框架(栈和队列数据结构)(掌握)
        * 栈
                * 先进后出
        * 队列
                * 先进先出

        5.集合框架(用LinkedList模拟栈数据结构的集合并测试)(掌握)
                a.案例演示
                        * 需求:请用LinkedList模拟栈数据结构的集合,并测试
                        * 创建一个类将Linked中的方法封装
                        *
                                        public class Stack {
                                                private LinkedList list = new LinkedList();                //创建LinkedList对象
                                               
                                                public void in(Object obj) {
                                                        list.addLast(obj);                                                        //封装addLast()方法
                                                }
                                               
                                                public Object out() {
                                                        return list.removeLast();                                        //封装removeLast()方法
                                                }
                                               
                                                public boolean isEmpty() {
                                                        return list.isEmpty();                                                //封装isEmpty()方法
                                                }
                                        }       

        6.集合框架(泛型概述和基本使用)(掌握)
                a.泛型概述:限定集合存储的数据类型,Collection<E>其中E代表引用数据类型,如果加上了该引用数据类型,
                        表示该集合中只能存储改类型对象,或者该类型的子类对象. -----简单理解:泛型就是标签,规定了集合中所能够存放的内容是啥
                b.泛型好处
                        * 提高安全性(将运行期的错误转换到编译期)
                        * 省去强转的麻烦
                c.泛型基本使用
                        * <>中放的必须是引用数据类型
                d.泛型使用注意事项
                        * 前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型)  

        7.集合框架(ArrayList存储字符串和自定义对象并遍历泛型版)(掌握)
                a.案例演示
                        * ArrayList存储字符串并遍历泛型版

        8.集合框架(泛型的由来)(了解)
                a.案例演示
                        * 泛型的由来:通过Object转型问题引入
                        * 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。
                                也就存在这隐患,所以Java提供了泛型来解决这个安全问题。

        9.集合框架(泛型类的概述及使用)(了解)
                a.泛型类概述<T>
                        * 把泛型定义在类上
                b.定义格式
                        * public class 类名<泛型类型1,…>
                c.注意事项       
                        * 泛型类型必须是引用类型
                d.案例演示
                        * 泛型类的使用

        10.集合框架(泛型方法的概述和使用)(了解)
                a.泛型方法概述
                        * 把泛型定义在方法上
                b.定义格式       
                        * public <泛型类型> 返回类型 方法名(泛型类型 变量名)
                c.案例演示
                        * 泛型方法的使用

        11.集合框架(泛型接口的概述和使用)(了解)
                a.泛型接口概述
                        * 把泛型定义在接口上
                b.定义格式       
                        * public interface 接口名<泛型类型>
                c.案例演示
                        * 泛型接口的使用

        12.集合框架(泛型高级之通配符)(了解)
                a.泛型通配符<?>
                        * 任意类型,如果没有明确,那么就是Object以及任意的Java类了
                b.? extends E
                        * 向下限定,E及其子类
                c.? super E
                        * 向上限定,E及其父类


        13.集合框架(增强for的概述和使用)(掌握)
                a.增强for概述(分别演示存放String和Person的遍历)
                        * 简化数组和Collection集合的遍历
                b.格式:               
                        for(元素数据类型 变量 : 数组或者Collection集合) {
                                使用变量即可,该变量就是元素
                        }
                c.案例演示
                        * 数组,集合存储元素用增强for遍历
                d.好处
                        * 简化遍历


        14.集合框架(ArrayList存储字符串和自定义对象并遍历增强for版)(掌握)
                a.案例演示
                        * ArrayList存储字符串并遍历增强for版
                        *
                                        ArrayList<String> list = new ArrayList<>();
                                        list.add("a");
                                        list.add("b");
                                        list.add("c");
                                        list.add("d");
                                       
                                        for(String s : list) {
                                                System.out.println(s);
                                        }
        15.集合框架(三种迭代的能否删除)(掌握)
                * 普通for循环,可以删除,但是索引要--
                * 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
                * 增强for循环不能删除

        16.集合框架(静态导入的概述和使用)(了解)
                a.静态导入概述:导入类中的静态方法,但一般不用
                b.格式:
                        * import static 包名….类名.方法名;
                        * 可以直接导入到方法的级别
                c.注意事项
                        * 方法必须是静态的,如果有多个同名的静态方法,容易不知道使用谁?
                        这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。

        17.集合框架(可变参数的概述和使用)(掌握)
                a.可变参数概述
                        * 定义方法的时候不知道该定义多少个参数
                b.格式
                        * 修饰符 返回值类型 方法名(数据类型…  变量名){}
                c.注意事项:
                        * 这里的变量其实是一个数组
                        * 如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个

        18.集合框架(Arrays工具类的asList()方法的使用)(掌握)
                a.案例演示
                        * Arrays工具类的asList()方法的使用
                        * Collection中toArray(T[] a)泛型版的集合转数组

        19.集合框架(集合嵌套之ArrayList嵌套ArrayList)(掌握)
                a.案例演示
                        * 集合嵌套之ArrayList嵌套ArrayList(也就是ArrayList集合中存放的全部是ArrayList对象)

评分

参与人数 1黑马币 +2 收起 理由
我来了我来了 + 2 很给力!

查看全部评分

6 个回复

倒序浏览
拿走了  笔记
回复 使用道具 举报
很喜欢看这种笔记总结   感觉自己能从中学到很多 很赞!
回复 使用道具 举报
感谢楼主分享 很详细的总结 谢谢
回复 使用道具 举报
不錯的整理,感謝熱心分享
回复 使用道具 举报
拿走了  笔记
回复 使用道具 举报
赞一个!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马