java----EntrySet 泛型套泛型

泛型套泛型:

         Set<Map.Entry<String,Integer>> es=map.entrySet();

         for(Map.entry<String,Integer> me:es){

                 String k=me.getKey();

                 int v=me.getValue();

                 System.out.println(k+"......"+v);

}

2,泛型是编译时语法;

3,泛型不能用多态,等号两边泛型一致,对象什么泛型,引用就是什么泛型:

      List<Object> l=new ArrayList<String>();

      l.add(10);              //  error

      所以,不同泛型之间是不能相互赋值的;

4,泛型的通配符:?:任意类型,主要用在形参上:static void print(List<?> l){  };

                           1)<? extends Number> 类型为number或其中的任何子类

                           2)  <? super Number>   类型为number或其任何父类

                           3)<? extends Comperable>  任何实现Comparable接口的类

                           4)  <T extends Number & Comperable>  T既是Number的子类,又

                                   实现Comperable 接口;

5,泛型方法:定义泛型:static <T extends Number & Comperable> void copy(List<T>,T[] o){      

                                            for(T o2:o){

                                              l.add(o2);

                                              }

                                          }

6,泛型类:class A <T extends Number>{      // 泛型的范围;

                       public void m(T t){}

                       public T m2(){

                         return null;}

                    }

7,泛型技术应用在集合框架中:实现类型安全的集合

     泛型:约定集合中的元素类型

 

你可能感兴趣的:(entrySet)