将变量添加到特定位置的数组中

时间:2016-06-27 02:58:01

标签: java android arrays

我试图在第三个位置向我的数组中添加一个字符串,因为我需要这样做一个循环,我会在它之后执行。

java.lang.IndexOutOfBoundsException: Invalid index 3, size is 0

它给出了债券预期,这是不可能做到的?

public static Iterable<String> sliceArray(final String[] array, 
                                          final int start) {
  return new Iterable<String>() {
    String[] values = array;
    int posn = start;

    @Override
    public Iterator<String> iterator() {
      return new Iterator<String>() {
        @Override
        public boolean hasNext() {
          return posn < values.length;
        }

        @Override
        public String next() {
          return values[posn++];
        }

        @Override
        public void remove() {
          throw new UnsupportedOperationException("No remove");
        }
      };
    }
  };
}

2 个答案:

答案 0 :(得分:2)

当你说

arrayList.add(n, value);

结果是在add之后,arrayList.get(n)将具有该值。您正在尝试安排事情,以便arrayList.get(3)mString。但是,ArrayList必须是连续元素的列表;它不能是一个“稀疏阵列”。也就是说,要使arrayList.get(3)存在,arrayList.get(0)arrayList.get(1)arrayList.get(2)也必须存在。

我不知道你想要那些值(也许null?),但你必须设置它们。 Java的ArrayList没有add方法,可以使用默认值自动填充空白。您可以像这样向数组添加3 nulls

arrayList.addAll(Arrays.asList(new String[3]));

答案 1 :(得分:-1)

你应该在索引3之前用空字符串填充数组,如下所示:

namesArray.add("");
namesArray.add("");
namesArray.add("");

然后你不会得到那个例外