Java泛型

简介: package test;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.junit.Test;/* 泛型 * 优点:通过允许指定泛型类或方法操作的类型,泛型功能将类型安全的任务从您转移给了编译器。 *
package test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;

/*    泛型
 * 优点:通过允许指定泛型类或方法操作的类型,泛型功能将类型安全的任务从您转移给了编译器。
 * 不需要编写代码来测试数据类型是否正确,因为在编译时会强制使用正确的数据类型。
 * 减少了类型强制转换的需要和运行时错误的可能性。
 */
public class test{

	@Test
	public void test1() throws Exception{
		List<String> list = new ArrayList<String>();  //使用泛型 避免错误,更加安全
		list.add("aa");
		list.add("bb");
		list.add("cc");
	    for(String s:list){
	    	System.out.println(s);
	    }
	}	
	//使用泛形时,泛形类型须为引用类型,不能是基本数据类型
	@Test
	public void test2() throws Exception{
		Map<Integer,String> map = new HashMap<Integer,String>();  //使用泛型 避免错误,更加安全
		map.put(1,"aa");
		map.put(2,"bb");
		map.put(3,"cc");
		
	/*
	 * Set<Map.Entry<Integer, String>> set = map.entrySet();
	 * Iterator<Map.Entry<Integer, String>> it= set.iterator();
	   while(it.hasNext()){
		   Map.Entry<Integer, String> entry =it.next();
		   int key = entry.getKey();
		   String value = entry.getValue();
		   System.out.println(key+"="+value);
	   }*/
	   for(Map.Entry<Integer, String> entry : map.entrySet()){
		   int key=entry.getKey();
		   String value = entry.getValue();
		   System.out.println(key+"="+value);
	   }	   
	}
	//编写一个泛型方法 实现指定位置上的数组元素的交换。
	public static<T> void  swap1(T arr[],int pos1,int pos2){
		T temp = arr[pos1];
		arr[pos1] = arr[pos2];
		arr[pos2] = temp;
	}
	//编写一个泛型方法 接收一个任意数组 并颠倒数组中所有元素的位置
	public static <T> void swap2(T a[]){
		int start = 0;
		int end = a.length-1;
		while(start<end){
			T temp = a[start];
			a[start] = a[end];
			a[end] = temp;
			start++;
			end--;
		}
	}
	public static void main(String[] args){
		Integer a[]={1,2,3,4};
		Integer b[]={5,6,7,8};
		swap1(a,1,2);
		for(int i:a){
			System.out.println(i+" ");
		}
		swap2(b);
		for(int i:b){
			System.out.println(i+" ");
		}
	}	
}

目录
相关文章
|
13天前
|
JavaScript Java 编译器
Java包装类和泛型的知识点详解
Java包装类和泛型的知识点的深度理解
|
1月前
|
Java
java中的泛型类型擦除
java中的泛型类型擦除
13 2
|
1月前
|
存储 Java fastjson
Java泛型-4(类型擦除后如何获取泛型参数)
Java泛型-4(类型擦除后如何获取泛型参数)
33 1
|
1天前
|
存储 安全 Java
每日一道Java面试题:说一说Java中的泛型?
今天的每日一道Java面试题聊的是Java中的泛型,泛型在面试的时候偶尔会被提及,频率不是特别高,但在日后的开发工作中,却是是个高频词汇,因此,我们有必要去认真的学习它。
5 0
|
13天前
|
存储 监控 安全
泛型魔法:解码Java中的类型参数
泛型魔法:解码Java中的类型参数
33 0
泛型魔法:解码Java中的类型参数
|
14天前
|
Java API
Java基础—笔记—内部类、枚举、泛型篇
本文介绍了Java编程中的内部类、枚举和泛型概念。匿名内部类用于简化类的创建,常作为方法参数,其原理是生成一个隐含的子类。枚举用于表示有限的固定数量的值,常用于系统配置或switch语句中。泛型则用来在编译时增强类型安全性,接收特定数据类型,包括泛型类、泛型接口和泛型方法。
9 0
|
1月前
|
存储 安全 Java
JAVA泛型
JAVA泛型
12 0
|
1月前
|
Java 编译器
[java进阶]——泛型类、泛型方法、泛型接口、泛型的通配符
[java进阶]——泛型类、泛型方法、泛型接口、泛型的通配符
|
1月前
|
存储 Java 编译器
Java——泛型
Java——泛型
16 0
|
1月前
|
存储 安全 Java
JAVA的泛型
JAVA的泛型
9 0