将某个大小初始化为数组

时间:2015-05-08 04:06:03

标签: java arrays arraylist

您好我正在尝试在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());
  }
}

1 个答案:

答案 0 :(得分:3)

您可以在Utility类中创建以下方法,并在每次需要时使用它:

public static <T> T[] newArrayOf(T[] t, int len){
        return (T[]) Array.newInstance(t.getClass().getComponentType(), len);
    }