java default 泛型_java 创建泛型集合的问题

这个Java代码示例展示了如何创建一个可增长的数组类`GrowableArray`,使用泛型并实现动态扩容功能。当数组达到最大容量时,会创建一个新的两倍大小的数组并复制旧数组元素。程序在添加10个随机数到数组后输出数组,并修改指定索引的值。在编译时遇到了未检查类型的警告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

publicclassGrowableArray{privatefinalintdefault_capacity=4;privateintcount;privateT[]array;publicGrowableArray(){count=0;array=(T[])(newObject[default_capacity]);//这里...

public class GrowableArray{

private final int default_capacity = 4;

private int count;

private T[] array;

public GrowableArray(){

count = 0;

array = (T[])(new Object[default_capacity]); //这里

}

public int Size(){

return count;

}

public void add(T elt){

if(count == array.length){

expandCapacity();

}

array[count] = elt;

count++;

}

private void expandCapacity(){

T[] larger = (T[])(new Object[array.length*2]); //还有这里应该怎么改

for(int index=0;index

larger[index] = array[index];

}

array = larger;

}

public T get(int index) throws ArrayIndexOutOfBoundsException{

if (index>count||index<0){

throw new ArrayIndexOutOfBoundsException("Error index");

}

T result = array[index];

return result;

}

public void set(int index, T elt) throws ArrayIndexOutOfBoundsException{

if (index>count||index<0){

throw new ArrayIndexOutOfBoundsException("Error index");

}

array[index]= elt;

}

public String toString(){

String result = "";

for(int index=0;index>=0;index++){

result += array[index]+"\n";

}

return result;

}

public static void main(String[] args){

GrowableArray test = new GrowableArray();

try{

for(int i=0;i<10;i++){

int rand = (int)(Math.random()*10+1);

System.out.print(rand);

test.add(rand);

System.out.println(test.toString());

}

System.out.println(test.Size());

test.set(4,7);

System.out.println(test.get(4));

}catch(Exception e)

{

System.out.println(e.getMessage());

}

}

}

C:\class\Ass11>javac GrowableArray.java -Xlint

GrowableArray.java:8: 警告:[unchecked] 未经检查的类型使用

找到: java.lang.Object[]

需要: T[]

array = (T[])(new Object[default_capacity]);

^

GrowableArray.java:21: 警告:[unchecked] 未经检查的类型使用

找到: java.lang.Object[]

需要: T[]

T[] larger = (T[])(new Object[array.length*2]);

要求使用泛型 新建个默认长度为4的数组

add 是添加value到组尾 并且当组 长度到最大时新建长度X2的数组并且拷贝原有原素

目的是要将10个10 以内的随机数添加到数组中

并且在每个添加之后输出数组

之后输出数组长度

使用set将index 4 value改成7

输出 index 4 但是最后只输出了一个数

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值