java - 数组列表插入方法

标签 java arrays for-loop methods insert

我想在数组中插入一个元素。我的方法应该是将数组的大小增加一个并将元素插入适当的位置。问题:它将元素添加到适当的位置并扩展数组,但它摆脱了该位置的原始元素并插入了一个空值。 我的代码:

 public void insert(int point, Person person){
    Person [] newList = new Person[this.size()+1];
    for(int i = 0; i < point; i++){
      newList[i] = list[i];
    }
    newList[point] = person;

    for(int i = point+1; i<this.size(); i++){
      newList[i] = list[i];

    }
   this.list = new Person[this.size()+1];
    for(int i = 0; i <this.size(); i++){
      list[i] = newList[i];
    }
  }

数组输出:

> FBArrayList name = new FBArrayList()
 [DrJava Input Box]
> name.list[0] = new Person("Emma", 7)
Person@20a3d02a
> name.list[1] = new Person("Daniel", 8)
Person@6e8a93de
> name.list[2] = new Person("Bradley", 9)
Person@327556d1
> name.list[3] = new Person("Monica", 1)
Person@3d886c83
> name.list[4] = new Person("Connor", 2)
Person@76b41f9c
> name.list[5] = new Person("Fedor", 3)
Person@462a5d25
> name.insert(3, new Person("David", 4))
> for(int i = 0; i<7; i++){
System.out.println(name.list[i].getName());
}
Emma
Daniel
Bradley
David
Connor
Fedor
java.lang.NullPointerException
> name.list
{ Person@20a3d02a, Person@6e8a93de, Person@327556d1, Person@1d1a8b9, Person@76b41f9c, Person@462a5d25, null }

关于我为什么失去 Monica 或我可能如何解决它的任何建议。

最佳答案

public void insert(int point, Person person){
  Person [] newList = new Person[this.size()+1];
  for(int i = 0; i < point; i++){
    newList[i] = list[i];
  }
  newList[point] = person;

  // this part copies the remainder of the original list to the new list after
  // your inserted entry
  for(int i = point; i < this.size(); i++){
    newList[i+1] = list[i];

  }

  this.list = newList;
}

关于java - 数组列表插入方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21618901/

相关文章:

python - 如何使用公共(public)字符串为多个文本文件运行脚本?

R For循环删除从一个字符串到列中第二个字符串的行范围

java - 在扩展 CrudRepository 的接口(interface)中缓存 Pageable 对象(结果)

java - libGdx:为网格着色

java - 通过 Intent 的 Android 共享不起作用,

javascript - 如何检查数组中每个元素的特定条件

c - 在较大的字符串中查找子字符串的第一个字符的位置

java - 创建按钮,但让每个按钮都有自己的变量名称

c - C语言中如何初始化二维数组

php - 检查数组元素是否对称