本周学习的知识超级多,很繁杂,从容器(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 底层实现的是一个双向循环链表,可以使用碎片内存,不能随机存取
但是增删元素时只需要修改引用即可,所以增删元素时有更好的性能
构造:List<string>list = new arraylist<>();
list<string >list = 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<String> 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<String> iterator = list.iterator();// 迭代
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}