您好我正在尝试在Main中创建一个带有前缀大小(例如,大小为10)的数组,然后在数组中添加项目(例如,3个项目),这将使该数组有7个未使用的空格,稍后,我想编写一个修剪未使用大小的方法。
但是我怎么能先创建一个固定大小的数组,因为很明显我的构造函数不允许在下面进行这个操作。
*Bag<String> names = new Bag<String>(**10**);*
public class Bag<T extends Comparable<T>> implements Iterable<T> {
private int MAX_ITEMS = 10; // initial array size
private int size;
private T[] data;
public Bag( ) {
data = (T []) new Comparable[MAX_ITEMS];
size = 0;
}
public static void main(String[ ] args) {
Bag<String> names = new Bag<String>();
names.add("Seattle");
names.add("Chicago");
names.add("New York");
System.out.println(names.size());
for (String name : names)
System.out.println(name);
names.trimToSize();
System.out.println(names.size());
}
}
答案 0 :(得分:3)
您可以在Utility类中创建以下方法,并在每次需要时使用它:
public static <T> T[] newArrayOf(T[] t, int len){
return (T[]) Array.newInstance(t.getClass().getComponentType(), len);
}