第四周总结

本周学习的知识超级多,很繁杂,从容器(ArrayList LinkedList ) 到 集合(HashSet 到 Tree Set )再到昨天讲的正则表达式以及stringbuffer和stringbuilder。感觉灰常繁杂。
期间还写了什么贪吃蛇游戏,用集合写联系人列表咯。太多太多了,感觉小生的的压力灰常大啊。哎,路漫漫其修远兮。不想上下而求索。
回到正题,还是总结一下这一周学习的内容吧 思密达!

一 : 容器
容器分为ArrayList和LinkedLsit
// 基本类型 包装类型(Wrapper class)
// byte --->Byte --->new Byte(1);将数据包装为对象 让容器认为是对象。
// short --->Short
// int --->Integer
// long --->Long
// float --->Float
// double --->Double
// char --->Character
// boolean--->Boolean
1.从java5开始,容器可以指定泛型参数来限定容器中对象引用的类型
2.带泛型参数的容器比不带泛型参数的容器在使用上更加方便
3.从java7开始构造器后面的反省参数可以省略----钻石语法
4.ArrayList实现的是一个数组,使用连续内存,可以实现随机存取
5.LinkedList 底层实现的是一个双向循环链表,可以使用碎片内存,不能随机存取
但是增删元素时只需要修改引用即可,所以增删元素时有更好的性能
构造:Listlist = new arraylist<>();
listlist = new linkedlist<>();
例如:
list.add("apple");
list.add("grape");
list.add("banana");
list.add("stawberry");
list.add("apple");
// list.add(new Date());
// list.add(3.14);
// 容器中只能放对象的引用 不能放基本数据类型
// 所以向容器中添加基本数据类型时会自动装箱(auto-boxing)
// 所谓自动装箱就是将基本数据类型处理成对应的包装类型

    // list.add(1000); list.add(1000)将1000转换成list.add(new Integer(1000))
    // list.add(true); list.add(new Boolean(true)
    list.add("apple");
    list.add("banana");
    //从java 8 开始 可以给容器发送for each消息对元素进行操作
    //for each方法的参数可以使方法引用,也可以是lambda表达式
    list.forEach(e ->{
        System.out.println(e.toUpperCase());//lambda表达式
    });
    //list.forEach(System.out::println);方法引用
    System.out.println("=======================");
    for (int i = 0; i < list.size(); i++) {
        System.out.println(list.get(i));
    }
    System.out.println("=========================");
    list.remove(3);// 该位置删掉元素
    // list.remove(3.14);//当是小数时,系统自动封装为对象,此时删除的不再是该位置的元素,而是此3.14这个对象
    list.add(1, "狗屎");// 容器和数组一样 不能越界 最大到size
    list.add(list.size(), "shit");
    list.remove("apple");// 只删除第一个apple
    list.remove(new Integer(1000));// 删除1000
    List temp = Arrays.asList("apple", "banana");
    list.removeAll(temp);// 根据参考系删除所有
    list.retainAll(temp);// 保留参考系保留所有
    list.clear();// 清空

    System.out.println("=========================");
    for (String object : list) {
        System.out.println(object);
        // System.out.println(object.getClass());
    }
    System.out.println("===========================");
    Iterator iterator = list.iterator();// 迭代
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }
}

你可能感兴趣的:(第四周总结)