gpt4 book ai didi

java - 是否可以删除数组中的对象而不是其索引? ( java )

转载 作者:行者123 更新时间:2023-12-02 02:44:03 25 4
gpt4 key购买 nike

当我尝试 self 回答这个问题时,我只能找到有关从数组中删除项目的其他问题,以便删除对象之后的项目在索引中向下移动 1。

在下面的代码中,我有两个数组保存 SomeObject 类(带有 name 属性):SomeObject_ONE 和 SomeObject_TWO。

下面我将一个对象“some-object”放入第一个数组中,然后将第二个数组设置为等于第一个数组中的对象。我仍然可以通过更改第二个数组中对象的属性(第三个缩进)来更改第一个数组中对象的属性。

但是,当我尝试将第二个数组中的对象设置为 null 时,它不会将第一个数组设置为 null,而是仅删除第二个数组中对象的索引(第四个缩进)。

有没有办法删除数组中的对象而不是删除其数组索引?

谢谢。

    SomeObject[] ObjectArray_ONE = new SomeObject[10];
SomeObject[] ObjectArray_TWO = new SomeObject[10];

ObjectArray_ONE[0] = new SomeObject();
ObjectArray_TWO[0] = ObjectArray_ONE[0];

System.out.println(ObjectArray_ONE[0].name+" outputs default name");
ObjectArray_TWO[0].name = "Name changed from OA2";
System.out.println(ObjectArray_ONE[0].name+" outputs Name changed from OA2");

System.out.println("Should not be null : "+ObjectArray_ONE[0]);
ObjectArray_TWO[0] = null;
System.out.println("Should be null : "+ObjectArray_ONE[0]);
ObjectArray_ONE[0] = null;
System.out.println("Only now is it really null: "+ObjectArray_ONE[0]);

最佳答案

这是按引用传递按值传递

Java 是按值传递的,在这种情况下,值是一个引用。这是一个微妙的区别。这里的意思是,如果你改变一处引用的对象,那么它到处都会改变。但它不会改变引用。如果我将引用设置为等于其他值,则原始对象不会改变。

关于java - 是否可以删除数组中的对象而不是其索引? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936566/

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