Java 泛型数组

泛型数组的创建

一、可以声明带泛型的数组引用,但是不能直接创建带泛型的数组对象
	public static void main(String[] args) {
	// 可以声明泛型数组引用ArrayList<String>[] listArr = new ArrayList[5]
	// 不能直接创建带泛型的数组对象ArrayList<String>[] listArr = new ArrayList<>[5]
	
	ArrayList<String>[] listArr = new ArrayList[5];
	ArrayList<String> strList = new ArrayList<>();
	strList.add("abc");
		
	listArr[0] = strList;
	String s = listArr[0].get(0);
	System.out.println(s);
}
二、 通过java.lang.reflect.Array的newInstance (Class, int)创建T[ ]数组
 java.lang.reflect.Array 的 newInstance (Class<T>, int)
创建T[ ]数组

泛型类

public class Fruit<T> {
//	private T[] array = new T[3]; 错误
	private T[] array;
	//构造方法
	public Fruit(Class<T> clz, int length) {
		// 通过Array.newInstance创建泛型数组
		array = (T[]) Array.newInstance(clz, length);
	}

	//	填充数组
	public void put(int index, T item) {
		array[index] = item;
	}

	//返回数组元素
	public T get(int index) {
		return array[index];
	}

	//得到整个数组
	public T[] getArray() {
		return array;
	}
} 

测试类

	public static void main(String[] args) {
		Fruit<String> fruit = new Fruit<>(String.class, 3);
		fruit.put(0, "Apple");
		fruit.put(1, "malo");
		fruit.put(2, "banlala");
		
		System.out.println(fruit.get(0));
		System.out.println(fruit.get(1));
		System.out.println(fruit.get(2));
		
		System.out.println("---------------------");
		
		String[] array = fruit.getArray();
		
		for(String a:array) {
			System.out.println(a);
		}
		
		System.out.println("---------------------");
		
		String s = Arrays.toString(fruit.getArray());
		System.out.println(s);

	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值