三.泛型
1.泛型的作用:
(1):将运转时异常转换成编译期的错误
举个栗子:
package com.YU; import java.util.ArrayList; import java.util.List; /** * 1.泛型的作用: (1):将运转时异常转换成编译期的错误 (2):提高代码的健壮性 * @author 21879 * */ public class Demo3 { public static void main(String[] args) { List list = new ArrayList(); list.add("java真的太棒了"); list.add(1); for (Object object : list) { String str = (String)list.get(1); System.out.println(str); } } }
运行结果:
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
总结:在一个集合没有指定泛型时,同时添加String类型和Integer类型时,在使用时以String类型使用时程序崩溃报错,指定泛型后,因此在编译期间会发生报错,可以通过泛型去进行解决下面举例:
public static void main(String[] args) { List<String> list = new ArrayList(); list.add("java真的太棒了"); list.add(1); for (Object object : list) { String str = (String)list.get(1); System.out.println(str); } }
但我们将List集合指定泛型后,编译期间就会报错,避免了在使用运行时发生报错
(2):提高代码的健壮性
1.泛型可以指定类、接口和方法,让我们的代码更加健全
a.泛型类
例:容器类(List.Set.Map集合)
List<String> list = new ArrayList<String>();
例:普通类
public class Demo3<T>
b.泛型接口
public Interface Demo3<T>
c.泛型方法
public <T> add(Goods<T> goods)
四.集合工具类
1.Array的使用
(1)sort排序
package com.YU; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 集合工具类 * 1.Array * 2.Collections * @author 21879 * */ public class Demo4 { public static void main(String[] args) { Integer[] a = {5,2,9,7,6,4}; Arrays.sort(a); System.out.println(Arrays.toString(a)); } }
运行结果:[2, 4, 5, 6, 7, 9]
由运行结果可得出,Arrays中的sort方法将一个一个Integer类型的数组进行了排序,
这里需要注意的是,sort方法需要搭配Arrays中的toString方法使用,不然打印的是当前对象的内存地址
(2).asList将数组转为集合
package com.YU; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 集合工具类 * 1.Array * 2.Collections * @author 21879 * */ public class Demo4 { public static void main(String[] args) { Integer[] a = {5,2,9,7,6,4}; List<Integer> asList = Arrays.asList(a); System.out.println(asList); } }
2.Collections的使用
(1)Collections的sort方法对集合进行排序
package com.YU; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; /** * 集合工具类 * 1.Array * 2.Collections * @author 21879 * */ public class Demo4 { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(3); list.add(4); list.add(2); list.add(6); list.add(1); Collections.sort(list); System.out.println(list); } }
运行结果:
[1, 2, 3, 4, 6]
利用Collections的sort方法对list集合进行排序