主页 > 开源代码  > 

Java语法-集合

Java语法-集合

Java语法

Day19 晨考

Collections工具类 /* Collection 集合工具类 此类中的方法全部为静态方法 此类种提供了用于操作集合的各种方法 swap(List<?> list,int i,int j) 交换指定位置的集合中的元素 sort(List<T> list,Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序 reverse(List<?> list) 反转指定列表中元素的顺序。 replaceAll(List<T> list, T oldVal,T newVal) 将列表中一个指定值的所有出现替换为另一个 min(Collection<? extends T> coll) 根据其元素的 自然顺序返回给定集合的最小元素 fill(List<? super T> list, T obj) 用指定的元素代替指定列表的所有元素 binarySearch(List<? extends Comparable<? super T>> list,T key) 使用二叉搜索算法搜索指定对象的 */ public class TestCollections { public static void main(String[] args){ List<Integer> list = new ArrayList<>(); list.add(125); list.add(896); list.add(666); list.add(258); list.add(321); Collections.sort(list); for(Integer integer : list){ System.out.println("integer = " + integer); } System.out.println("-----------------------------------------"); int index = Collection.binarySearch(list,666); System.out.println("index = " + index); System.out.println("-----------------------------------------"); // 获取集合中最大元素 要求元素必须可以比较大小 即 实现Comparable接口 或者 定义Comparator实现类 Integer max = Collections.max(list); System.out.println("max = " + max); System.out.println("-----------------------------------------"); Integer min = Collections.min(list); System.out.println("min = " + min); System.out.println("-----------------------------------------"); // 交换指定位置的元素 Collections.swap(list,0,3); for(Integer integer : list){ System.out.println("integer = " + integer); } System.out.println("-----------------------------------------"); // 2使用指定元素填充集合 Collections.fill(list,999); for(Integer integer : list){ System.out.println("integer = " + integer); } } } 泛型 /* 泛型: 用于统一数据类型 泛型可以使用的位置:类、接口、形参、返回值、属性 自定义泛型,如何书写(泛型的名称可以使用任何单词 字母 大小写都可以 但是我们只推荐使用一些有公认的含义的一些大写字母) K key 键 V Value 值 T Type 类型 E Element 元素 R Return 返回值 P Parameter 参数 N Number 数值 表示范围为Number及其子类 泛型初始化的时机: 1.类声明的泛型 是随着当前类创建对象初始化 2.接口声明的泛型 是随着实现类实现接口的初始化 */ public class TestGenericType { } class A<T>{ public void m1(T t){ System.out.println("t = " + t); } public T m2(){ return null; } } class TestA{ public static void main(String[] args){ A a1 = new A(); a1.m1("abc"); System.out.println(a1.m2()); A<Integer> a2 = new A<Integer>(); a2.m1(100); System.out.println(a2.m2()); A<Double> a3 = new A<Double>(); a3.m1(100.5); System.out.println(a3.m2()); } } interface C<R,P>{ R m1(P p); } class C1 implements C<Boolean,String>{ @Override public Boolean m1(String s){ return "abc".startsWith("a"); } } class C2 implements C<Double,String>{ @Override public Double m1(String s){ return Double.parseDouble(s); } } class TestC{ public static void main(String[] args){ C1 c1 = new C1(); System.out.println(c1.m1("abc")); C2 c2 = new C2(); System.out.println(c2.m1("123")); } } class Animal{} class Pet extends Animal{} class Dog extends Pet{} class Cat extends Pet{} class TestPet{ public static void m1(List<Pet> list){} // 泛型是不存在类型自动提升 // 要求形参为Pet类型 或者 Pet类的任意子类类型 // ? extends 父类 : 表示泛型可以为父类 以及 父类的任何子类类型 // Pet类的父类可以吗? public static void m2(List<? extends Pet> list){} /* 要求:泛型为Dog 以及 Dog类的任何父类 ? super 子类: 表示反省可以为子类 以及 任何子类的父类 表示设置泛型的下限 没有上限 */ public static void main(String[] args){ Vector<Pet> list1 = new Vector(); ArrayList<Pet> list2 = new ArrayList<>(); LinkedList<Pet> list3 = new LinkedList<>(); m1(list1); m1(list2); m1(list3); System.out.println("---------------------------------------"); Vector<Cat> list4 = new Vector(); ArrayList<Pet> list5 = new ArrayList<>(); m2(list4); m2(list5); m1(list1); ArrayList<Animal> list6 = new ArrayList<>(); m2(list6); } }
标签:

Java语法-集合由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Java语法-集合