Javaweb第十四天学习

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获取key和value的关系

//得到key和value的关系

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;

}

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

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

posted @ 2022-02-15 21:25  向尧  阅读(31)  评论(0)    收藏  举报