zoukankan      html  css  js  c++  java
  • 泛型类、Map集合

    ————泛型JDK1.5之后出现的新特性;用于解决安全问题,是一个类型安全机制。

      好处:

        1、运行时期出现的问题ClassCastException ,转移到了编译时期,方便于程序员解决问题,让运行时期问题减少。。

        2、避免了强制转换的麻烦。

      格式

        通过<> 来定义要操作的引用数据类型。

    在使用java提供的对象时,什么时候写泛型呢?

     答:通常在集合框架中很常见,只要见到<> 就要定义泛型。   其实<>就是用来接收泛型的。

      当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可。

      泛型类: 

        什么时候定义泛型类?

           答: 当类中要操作的引用数据类型不确定的时候, 早期定义Object类来完成扩展; 现在定义泛型来完成扩展。

              泛型类定义的泛型,在整个类中有效,如果被方法使用;  

              那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了。

              为了让不同的方法可以操作不同类型,而且类型还不确定,那么就可以将泛型定义在方法上。

      特殊之处:  

        静态方法不可以访问类上定义的泛型。

        如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。(在修饰符后面 、 返回值类型前面 :如 static <T> void)。

      高级应用:  

         :  通配符,也可以理解是占位符。

        extends E :  可以接收E 类型或者 E的子类型,上限。

        super E :  可以接收E 类型或者 E的父类型 ,下限。

      

    ————Map集合该集合存储键值对。 一对一往里存。而且要保证键的唯一性。

        1、添加

          put(K key, V value);

          putAll(Map < ? extends K , ? extends V > m);

        2、删除

          clear()

          remove(Object key)

        3、判断

          containsValue(Object value)

          containsKey(Object key)

          isEmpty()

        4、获取

          get(Object key)  size()  values()

          重要: entrySet()      keySet()

      Map

        |---Hashtable : 底层是哈希表数据结构,不可以存入null 键 null 值。该集合是线程同步的。Jdk1.0 效率低。

        |---HashMap : 底层是哈希表数据结构,允许使用 null 键和 null 值。该集合是线程不同步的。Jdk1.2 效率高。

        |---TreeMap  :底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序。

    和Set很像。

      其实Set底层就是使用了Map集合

      

      添加元素,如果添加时,出现相同的键,那么后添加的值会覆盖原有的键值对。

      并put方法会返回 被覆盖的值。  例如:

      System.out.println("put :" + map.put( "01" + "jdfkslfh"));

      System.out.println("pUt: " + map.out( "01" + "djksl"));

      // 打印输出:  jdfkslfh 被返回 , 01 键上的值则为 djksl 

      ---可以通过get方法的返回值来判断一个键是否存在,通过返回null来判断

      ---获取map集合中所有的值

          Collection<String> coll = map.values();

      --->>> 1、Set<k> keySet

                将map中所有的键存入到Set集合中。因为Set具备迭代器,所有可以迭代方式取出所有的键,再根据get方法,获取每一个键对应的值。

              Map集合的取出原理: 将map结合转换set集合。在通过迭代器取出。

          2、Set<Map.Entry<k,v>> entrySet

                将map集合中的映射关系存入到了Set集合中,而这个关系的数据类型就是: Map.Entry。

      //先获取集合的所有键的set集合,keySet();

       Set<String> keySet =  map.keySet();

      //有了Set集合,就可以获取其迭代器。

       Iterator<String> it = keySet.iterator();

      

  • 相关阅读:
    delphi7在windows server 2003企业版上不能打开项目的选项(Options)窗口的解决方法
    简单的两个字“谢谢”,会让我坚持我的写作,我也要谢谢你们
    F41GUT 安装Windows server 2003系统后无法安装显卡驱动的解决办法
    远程桌面无法登录windows server 2003服务器
    F41GUT 安装Windows server 2003系统后无法安装显卡驱动的解决办法
    MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
    delphi7在windows server 2003企业版上不能打开项目的选项(Options)窗口的解决方法
    远程桌面无法登录windows server 2003服务器
    MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
    关于ajax 和josn
  • 原文地址:https://www.cnblogs.com/jesonjason/p/5105263.html
Copyright © 2011-2022 走看看