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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柳柳桑 黑马粉丝团   /  2015-12-25 11:20  /  7166 人查看  /  17 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文


入学基础day16笔记

16.01_集合框架(去除ArrayList中重复字符串元素方式)(掌握)
  • A:案例演示

    • 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
    • 思路:创建新集合方式
      1. /**
      2. *  A:案例演示
      3. * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)
      4. * 思路:创建新集合方式
      5. */
      6. public static void main(String[] args) {
      7.     ArrayList list = new ArrayList();
      8.     list.add("a");
      9.     list.add("a");
      10.     list.add("b");
      11.     list.add("b");
      12.     list.add("b");
      13.     list.add("c");
      14.     list.add("c");
      15.     list.add("c");
      16.     list.add("c");

      17.     System.out.println(list);
      18.     ArrayList newList = getSingle(list);
      19.     System.out.println(newList);
      20. }

      21. /*
      22. * 去除重复
      23. * 1,返回ArrayList
      24. * 2,参数列表ArrayList
      25. */
      26. public static ArrayList getSingle(ArrayList list) {
      27.     ArrayList newList = new ArrayList();            //创建一个新集合
      28.     Iterator it = list.iterator();                  //获取迭代器
      29.     while(it.hasNext()) {                           //判断老集合中是否有元素
      30.         String temp = (String)it.next();            //将每一个元素临时记录住
      31.         if(!newList.contains(temp)) {               //如果新集合中不包含该元素
      32.             newList.add(temp);                      //将该元素添加到新集合中
      33.         }
      34.     }
      35.     return newList;                                 //将新集合返回
      36. }
      复制代码


16.02_集合框架(去除ArrayList中重复自定义对象元素)(掌握)
  • A:案例演示
    • 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)
  • B:注意事项
    • 重写equals()方法的

16.03_集合框架(LinkedList的特有功能)(掌握)
  • A:LinkedList类概述
  • B:LinkedList类特有功能
    • public void addFirst(E e)及addLast(E e)
    • public E getFirst()及getLast()
    • public E removeFirst()及public E removeLast()
    • public E get(int index);

16.04_集合框架(栈和队列数据结构)(掌握)

    • 先进后出
  • 队列
    • 先进先出

16.05_集合框架(用LinkedList模拟栈数据结构的集合并测试)(掌握)
  • A:案例演示

    • 需求:请用LinkedList模拟栈数据结构的集合,并测试
    • 创建一个类将Linked中的方法封装
      1. public class Stack {
      2.     private LinkedList list = new LinkedList();     //创建LinkedList对象

      3.     public void in(Object obj) {
      4.         list.addLast(obj);                          //封装addLast()方法
      5.     }

      6.     public Object out() {
      7.         return list.removeLast();                   //封装removeLast()方法
      8.     }

      9.     public boolean isEmpty() {
      10.         return list.isEmpty();                      //封装isEmpty()方法
      11.     }
      12. }
      复制代码


16.06_集合框架(泛型概述和基本使用)(掌握)
  • A:泛型概述
  • B:泛型好处
    • 提高安全性(将运行期的错误转换到编译期)
    • 省去强转的麻烦
  • C:泛型基本使用
    • <>中放的必须是引用数据类型
  • D:泛型使用注意事项
    • 前后的泛型必须一致,或者后面的泛型可以省略不写(1.7的新特性菱形泛型)

16.07_集合框架(ArrayList存储字符串和自定义对象并遍历泛型版)(掌握)
  • A:案例演示
    • ArrayList存储字符串并遍历泛型版

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

16.09_集合框架(泛型类的概述及使用)(了解)
  • A:泛型类概述
    • 把泛型定义在类上
  • B:定义格式
    • public class 类名<泛型类型1,…>
  • C:注意事项
    • 泛型类型必须是引用类型
  • D:案例演示
    • 泛型类的使用

16.10_集合框架(泛型方法的概述和使用)(了解)
  • A:泛型方法概述
    • 把泛型定义在方法上
  • B:定义格式
    • public <泛型类型> 返回类型 方法名(泛型类型 变量名)
  • C:案例演示
    • 泛型方法的使用

16.11_集合框架(泛型接口的概述和使用)(了解)
  • A:泛型接口概述
    • 把泛型定义在接口上
  • B:定义格式
    • public interface 接口名<泛型类型>
  • C:案例演示
    • 泛型接口的使用

16.12_集合框架(泛型高级之通配符)(了解)
  • A:泛型通配符<?>
    • 任意类型,如果没有明确,那么就是Object以及任意的Java类了
  • B:? extends E
    • 向下限定,E及其子类
  • C:? super E
    • 向上限定,E及其父类

16.13_集合框架(增强for的概述和使用)(掌握)
  • A:增强for概述
    • 简化数组和Collection集合的遍历
  • B:格式:
    1. for(元素数据类型 变量 : 数组或者Collection集合) {
    2.     使用变量即可,该变量就是元素
    3. }
    复制代码
  • C:案例演示
    • 数组,集合存储元素用增强for遍历
  • D:好处
    • 简化遍历

16.14_集合框架(ArrayList存储字符串和自定义对象并遍历增强for版)(掌握)
  • A:案例演示

    • ArrayList存储字符串并遍历增强for版
      1. ArrayList<String> list = new ArrayList<>();
      2. list.add("a");
      3. list.add("b");
      4. list.add("c");
      5. list.add("d");

      6. for(String s : list) {
      7.     System.out.println(s);
      8. }
      复制代码


16.15_集合框架(三种迭代的能否删除)(掌握)
  • 普通for循环,可以删除,但是索引要--
  • 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
  • 增强for循环不能删除

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

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

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

16.19_集合框架(集合嵌套之ArrayList嵌套ArrayList)(掌握)
  • A:案例演示
    • 集合嵌套之ArrayList嵌套ArrayList

16.20_day16总结
  • 把今天的知识点总结一遍。


17 个回复

倒序浏览
方法好多,转来转去的,晕死
回复 使用道具 举报
大赞,不错,值得拥有
回复 使用道具 举报
大赞,不错,值得拥有
回复 使用道具 举报
到处都可以看到美女姐姐呀
回复 使用道具 举报
去除重复的元素用remove不就行了么?是不是这样
回复 使用道具 举报
喜欢。。。。。。。。。。。。。。。
回复 使用道具 举报
还不错,再学习一遍
回复 使用道具 举报
Lis 中级黑马 2016-4-17 12:22:34
9#
赞赞赞,,不错啊,,
回复 使用道具 举报
顶顶。。~~
回复 使用道具 举报
666666666666666666666666666666666666666666666
回复 使用道具 举报
赞赞赞,,不错啊,,
回复 使用道具 举报

大赞,不错,值得拥有
回复 使用道具 举报
谢谢大牛的分享  
回复 使用道具 举报
集合就是乾坤袋
回复 使用道具 举报
666666666666666666666666666666666666666666666
回复 使用道具 举报
支持一下 支持
回复 使用道具 举报
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马