java web学习第十四天——jdk

Day 14

 

Jdk 5.0的新特性

 Jdk1.1  1.2 1.3  1.4  5.0

**泛型,枚举 , 静态导入 , 自动产装箱 , 增强for循环, 可变参数

反射

泛型:为什么要使用泛型?

一般在集合上,比如现在把一个字符串类型的值放在集合里面,这个时候,这个值放入到集合之后,失去了本身的类型,之能是object,这个时候,比如想要进行类型转换,很容易出现类型转换的错误,可以使用泛型来解决。

 

如何使用:

常用在 list set map上面

在list上:

public  void testList(){

       List<String> list = new ArrayList<String>();

       list.add("aaa");

       list.add("bbb");

       list.add("ccc");

       list.add("ddd");

       //使用三种方法遍历

       //1 普通方法

       for(inti = 1; i<=list.size();i++){

           System.out.println(list.get(i));

       }

      

       //2 迭代器

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

       while(it.hasNext()){

           System.out.println(it.next());

       }

       //3 增强for循环

       for (String s : list) {

           System.err.println(s);

          

       }

             

set上使用泛型:

publicstaticvoid testSet(){

       Set<String> set = new HashSet<String>();

       set.add("aaa");

       set.add("bbb");

       set.add("ccc");

       //遍历

       //1  迭代器

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

       while(it.hasNext()){

           System.out.println(it.next());

       }

       //2  增强for

       for (String s2 : set) {

           System.out.println(s2);

       }

    }

在map上使用泛型:

 Map的结构 key ---value的形式

publicstaticvoid testMap(){

       Map<String, String> map = new HashMap<String, String>();

       map.put("aaa", "111");

       map.put("bbb", "222");

       map.put("ccc", "333");

       //遍历map有两种方法

       // 1 获取key 的值,通过get方法来获取value的值

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

       //遍历key

       for (String key  : set) {

           String value = map.get(key);

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

          

       }

       // 2获取keyvalue的关系

       //得到keyvalue的关系

       Set<Entry<String, String>> set1 = map.entrySet();

       //遍历

       for (Entry<String, String> entry : set1) {

           String key = entry.getKey();

           String value = entry.getValue();

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

       }

    }

 

在泛型里面必须写的是一个对象,不可以写基本的数据类型

写基本数据类型对应的包装类

byte---Byte

short---Short

int---Integer

long---Long

float---Float

double---Double

char---Character

Boolean---Boolean

泛型使用在方法上:

目标:定义一个数组,实现指定位置上数组元素的交换

当方法逻辑相同只是数据的类型不同,这个时候就可以使用泛型

使用泛型方法需要定义一个类型,使用大写的字母表示 T:这个T可以表示任何的类型,写在方法返回值之前,表示定义了一个类型这个类型是T

Public static <T> void compare(T[]arr,int a,int,b){

T temp = arr[a]; arr[a]=arr[b]; arr[b]=temp;

}

这样就可以实现所有类型的交换

泛型在类上面的使用,不能再静态方法上使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值