Java泛型使用详细分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java 泛型使用详细分析

、泛型的简介

1、为什么要使用泛型?

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

2、在泛型里面写是一个对象,String 不能写基本的数据类型比如int, 要写基本的数据类型对应的包装类

、在集合上如何使用泛型

- 常用集合list set map - 泛型语法:集合 比如list

// 泛型在list 上的使用

@Test

public void testList() {

List list = new ArrayList();

list.add("aaa");

list.add("bbb");

list.add("ccc");

//for 循环

for (int i = 1;i

String s = list.get(i);

System.out.println(s);

}

System.out.println("=================");

// 增强for 循环

for (String string : list) {

System.out.println(string);

}

// 迭代器

Iterator it = list.iterator();

while (it.hasNext()){

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

}

// 泛型在set 上的使用

@Test

public void testSet() {

Set set = new HashSet();

set.add("www");

set.add("qqq");

set.add("zzz");

// 使用增强for 循环

for (String s2 : set) {

System.out.println(s2);

}

System.out.println("=============");

// 使用迭代器

Iterator iterator = set.iterator();

while (iterator.hasNext()) {

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

}

}

// 在map 上使用泛型

@Test

public void testMap() {

Map map = new HashMap();

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

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

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

// 遍历map ,有两种

//1 、获取所有的key ,通过key 得到value, 使用get 方法//2 、获取key 和value 的关系

// 使用第一种方式遍历

// 获取所有的key

Set sets = map.keySet();

// 遍历所有的key

for (String key : sets) {

String value = map.get(key);

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

}

System.out.println("========");

// 使用第二种方式遍历

// 得到key 和value 的关系

Set> sets1 = map.entrySet();

// 遍历sets1

for (Map.Entry entry :sets1) {

String keyv = entry.getKey();

String valuev = entry.getValue();

System.out.println(keyv+":"+valuev);

}

}

三、在方法上使用泛型

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

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

/*

* 使用泛型方法需要定义一个类型使用大小字母表示T:T 表示任意的类型* 写在返回值之前void 之前

* ========= 表示定义了一个类型,这个类型是T

* 在下面就可以使用类型

* */

public static void swap(T[] arr,int a,int b) {

T temp = arr[a];

arr[a] = arr[b];

arr[b] = temp;

四、泛型在类上的使用

public class TestDemo04 {

// 在类里面可以直接使用T 的类型

T aa;

public void test1(T bb) {}

// 写一静态方法,在类上面定义的泛型,不能在静态方法里面使用,需重新定义泛型public static void test2(A cc) {}

}

相关文档
最新文档