2021.03.21
第36次记录
课堂笔记1:
自定义泛型可以吗?可以
自定义泛型的时候,<>尖括号中的是一个标识符,随便写
java源代码中经常出现的是:<E>和<T>
代码演示1:
//自动类型推断(钻石表达式)
public class GenericTest02 {
public static void main(String[] args) {
//ArrayList<这里的类型会自动推断>(),前提是JDK8之后才允许
//自动类型推断,钻石表达式
//List<AnimalDemo> myList = new ArrayList<>();
List<AnimalDemo> myList = new ArrayList<AnimalDemo>();
myList.add(new AnimalDemo());
myList.add(new CatDemo());
myList.add(new BirdDemo());
Iterator<AnimalDemo> it = myList.iterator();
while (it.hasNext()){
AnimalDemo a = it.next();
a.move();
}
List<String> list = new ArrayList<String>();
list.add("abc");
System.out.println(list.size());
}
}
输出结果:
动物在移动
动物在移动
动物在移动
1
代码演示2:
public class GenericTest03<abc> {
public void dosome(abc o){
System.out.println(o);
}
public static void main(String[] args) {
GenericTest03<String> gt = new GenericTest03<String>();
gt.dosome("abc");
System.out.println("--------------");
GenericTest03<Integer> gt2 = new GenericTest03<Integer>();
gt2.dosome(100);
}
}
输出结果:
abc
--------------
100
课堂笔记2:
1.JDK5.0之后推出的新特性:叫做增强for循环,或者叫做foreach
2.增强for(foreach)的语法:
for(元素类型 变量名:数组或集合){
System.out.println(变量名);
}
3.foreach有一个缺点:没有下标
在需要使用下标的循环中,不建议使用foreach。
代码演示3:
public class ForEachText01 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
//普通for循环
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//增强for(foreach)
for (int a:arr){
System.out.println(a);
}
}
}
输出结果:
1
2
3
4
5
1
2
3
4
5
代码演示4:
//集合使用foreach
public class ForEachTest02 {
public static void main(String[] args) {
//创建LIst集合
List<String> strlist = new ArrayList<String>();
//添加元素
strlist.add("hello");
strlist.add("world");
//遍历
Iterator<String> it = strlist.iterator();
while (it.hasNext()){
String s = it.next();
System.out.println(s);
}
//使用下标方式(只针对有下标的循环)
for (int i = 0; i < strlist.size(); i++) {
System.out.println(strlist.get(i));
}
//使用foreach
for (String s:strlist){
System.out.println(s);
}
List<Integer> list = new ArrayList<Integer>();
list.add(100);
list.add(200);
for (Integer i:list){
System.out.println(i);
}
}
}
输出结果:
hello
world
hello
world
hello
world
100
200