gpt4 book ai didi

java - 修剪对象数组

转载 作者:行者123 更新时间:2023-11-29 10:10:27 24 4
gpt4 key购买 nike

我试图更好地理解排序,但我遇到了 java.lang.NullPointerException 问题,我知道这是因为数组中的空值。所以我的问题是,是否有一种简单的方法可以删除那些空值或修剪数组,这样就不会出现该错误?任何反馈将不胜感激

public class main {

public static void main(String[] args){
person[] persons = new person[6];
persons[0]=new person("bill nye",34);
persons[1]=new person("frank white",64);
persons[2]=new person("sara poppa ",20);
persons[3]=new person("jess stoor",28);
persons[4]=new person("mike amato",20);




for(int i=0;i<persons.length;i++){ //before sorting
System.out.println(persons[i]);
}

insertionSort(persons);
System.out.println();

for(int i=0;i<persons.length;i++){ //before sorting
System.out.println(persons[i]);
}

}
public static void insertionSort(person[] persons) {
int in, out;

for (out = 1; out < persons.length; out++) {
person temp = persons[out];
in = out;

while (in > 0 && persons[in - 1].getName().compareTo(temp.getName()) > 0) {
persons[in] = persons[in - 1];
--in;
}
persons[in] = temp;
}
}

public class person {
private String Name;
private int Age;
public person(String name, int age){

this.Name=name;
this.Age=age;


}
public String getName(){
return Name;
}
public void setName(String name) {
Name = name;
}




public int getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}


public String toString(){

return Name + " " + Age;
}

}

最佳答案

有两个简单的解决方案:

正如 Mureinik 所建议的,您可以将数组创建为小一号。

person[] persons = new person[5];

您还提到要从数组中删除索引,但从技术上讲,您不能在 Java 中执行此操作。您可以 null 值,但实际上不能删除索引。如果这是您想要的长期功能,动态处理数组大小,那么您应该使用 ArrayListList 对象。

ArrayList<person> persons = new ArrayList<>();
persons.add(object);

如果你需要删除一个对象:

persons.remove(index);

关于java - 修剪对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38861066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com