泛型:泛型方法、泛型数组、泛型类、异常处理

泛型

-泛型方法

[if !supportLists]·       [endif]定义泛型方法的规则:所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的)。

[if !supportLists]·       [endif]每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。

[if !supportLists]·       [endif]类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。

[if !supportLists]·       [endif]泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。


-泛型类

泛型类的声明和非泛型类的声明类似,除了在类名后面添加了类型参数声明部分。

和泛型方法一样,泛型类的类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。因为他们接受一个或多个参数,这些类被称为参数化的类或参数化的类型。


 如果重复则放不进去

       内部使用HashMap来实现 键值对 建Key是不能重复的

       2.集合是无序的  添加的顺序和存储的顺序无关

       使用了默认排序法

       哈希算法

       如果实现HashMap里面Key不相同

       计算这个Key对应的对象的Hash值

       整数:在对象的地址的基础上按照一定的算法计算出来的一个整数

        如果两个对象相同 那么计算和粗来的Hash值就相同


+HashMap 集合 存储数据的特点:键key-值value

  key不能重复 可以是任意的对象类型 通常使用字符串String

HashMap score =new

HashMap<>();

 

       添加对象:添加键值对

       score.put("Chinese",98);

       score.put("Math",92);

       score.put("English",94);


        更改某个键对应的值的值

       score.put("Chinese",89);

       获取某个键值对的个数

       score.size();

       获取所有的key keySet

       System.out.println(score.keySet());

       获取所有的value

values

       System.out.println(score.values());

       获取Entry:key-value  entrySet

       System.out.println(score.entrySet());

       获取一个键key对应的值

       System.out.println(score.get("English"));

       System.out.println(score.get("Eng"));

       存

       System.out.println(score.put("PE",100));

键值对的遍历

        1.通过遍历key来得到每一个key对应的值

       for (String key: score.keySet()){

           通过key得到值

           int s =score.get(key);

           System.out.println("key:"+key+" value:"+s);

       }


       2.通过entrySet 得到Entry对象的集合

       一个Entry管理一个键值对 getKey

getValue

       Set >entrys =score.entrySet();

       for (Map.Entry entry:entrys){

           得到Entry对应的key

           String key =(String)entry.getKey();

           获取Entry对应的值

           Integer value = (Integer)entry.getValue();

           int s2 =score.get(key);

           System.out.println("key:"+key+" value:"+s2 );

       }



异常处理 处理运行过程中出现的不可控的错误 是程序更健壮:error

Exception-

 try{

     执行的代码

     可能出现的异常

     一旦出现异常系统自动为我们创建一个异常类 并抛出

  }catch(NullPointerException e){

  如果需要自己处理异常就catch

  }catch(IOException e){

    如果有多个异常 可以使用多个catch来捕获

    如果有多个异常 catch的顺序是从小到大

  }catch(Exception e){


  } finally{

      不管有没有异常finally都会被执行

      如果资源回收 网络连接 数据库连接I/O流

  }


  如果异常出现 后面代码将不会执行

 try的代码块不要抓太大


  使用throws抛出异常 给外部处理


  当特殊情况出现了 自己可以选择抛出异常

  throw


  自定义异常类

你可能感兴趣的:(泛型:泛型方法、泛型数组、泛型类、异常处理)