zoukankan      html  css  js  c++  java
  • 2018.6.11 集合和泛型的课后练习总结

    介绍Set接口和List接口的区别 提及 介绍Map接口

    Collection表示一组对象,这些对象也称为collection的元素;一些 collection允许有重复的元素,而另一些则不允许;一些collection是有序的,而另一些则是无序的;JDK中不提供此接口的任何直接实 现,它提供更具体的子接口(如 Set 和 List)实现;Map没有继承Collection接口,Map提供key到value的映射;一个Map中不能包含相同key,每个key只能映射一个value;Map接口提供3种集合的视图,Map的内容可以被当做一组key集合,一组value集合,或者一组key-value映射;
    
    List和Set接口自Collection接口,而Map不是继承的Collection接口
    List接口	
    	元素有放入顺序,元素可重复 
    
    	List接口有三个实现类:LinkedList,ArrayList,Vector 
    
    
    
    基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作
    

    2.JAVA中Collection和Collections的区别

    Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。 
    Collection是个java.util下的接口,它是各种集合结构的父接口。
    
    Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。
         它有两个常用的子接口,List:对元素都有定义索引。有序的。可以重复元素;Set:不可以重复元素。无序。
    
    

    2.1 java.util.Collections 是一个包装类。 这个类不能被实例化

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class Test {
    
        public static void main(String args[]) {
            //注意List是实现Collection接口的
            List list = new ArrayList();
            int array[] = {5, 1, 3, 4, 2};
            for (int i = 0; i < array.length; i++) {
                list.add(array[i]);
            }
            Collections.sort(list);
            for (int i = 0; i < array.length; i++) {
                System.out.println(list.get(i)); // 结果:1 2 3 4 5
            }
           
        }
    }
    
    
    
    
    具体来看下Collections中的sort方法:(以下代码摘自Collections类中源码)
     public static <T extends Comparable<? super T>> void sort(List<T> list) {
            Object[] a = list.toArray();
            Arrays.sort(a);
            ListIterator<T> i = list.listIterator();
            for (int j=0; j<a.length; j++) {
                i.next();
                i.set((T)a[j]);
            }
        }
    

    3.请简要介绍使用泛型的好处

    ·泛型简单易用
    
    ·类型安全 泛型的主要目标是实现java的类型安全。 泛型可以使编译器知道一个对象的限定类型是什么,这样编译器就可以在一个高的程度上验证这个类型
    
    ·消除了强制类型转换 使得代码可读性好,减少了很多出错的机会
    
    J·ava语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
    

    3.1 泛型的实现原理

    泛型的实现是靠类型擦除技术 类型擦除是在编译期完成的 也就是在编译期 编译器会将泛型的类型参数都擦除成它的限定类型,如果没有则擦除为object类型之后在获取的时候再强制类型转换为对应的类型。 在运行期间并没有泛型的任何信息,因此也没有优化。
    
  • 相关阅读:
    生涯路
    事件与window的基本操作
    js操作
    c# 函数
    布局页面CSS
    网页填写的基本操作
    框架集
    网页的基本操作1
    存储与触发器
    常用的函数
  • 原文地址:https://www.cnblogs.com/qichunlin/p/9160202.html
Copyright © 2011-2022 走看看