当前位置: 首页 > 知识库问答 >
问题:

如果我将一个对象放在索引0处的数组中,如何将该对象放在索引1中?[重复]

濮丰
2023-03-14

我在上Java初学者课。我只懂基本的Java。我们刚刚开始多态性和继承。我的问题是将对象放入数组。我有一个由十个Runner对象组成的数组,如下所示。

import java.util.*;

public class Race 
{

    public static void main(String []args)
    {

        Runner r1 = new Runner("Jack Sprat", 10);
        Runner r2 = new Runner("Cecil Litwack", 8);
        Runner r3 = new Runner("Dina Might", 3);
        Runner r4 = new Runner("Seymour Butts", 4);
        Runner r5 = new Runner("Ima reject", 1 );
        Runner r6 = new Runner("Ivan Earache", 9);
        Runner r7 = new Runner("Ace Ventura", 6);
        Runner r8 = new Runner("Joan O'Farc", 7);
        Runner r9 = new Runner("Jack O'Lantern", 5);
        Runner r10 = new Runner("Jim Nasium", 2);

        Runner[] raceArray = new Runner[10];

        raceArray[0] = r1;
        raceArray[1] = r2;
        raceArray[2] = r3;
        raceArray[3] = r4;
        raceArray[4] = r5;
        raceArray[5] = r6;
        raceArray[6] = r7;
        raceArray[7] = r8;
        raceArray[8] = r9;
        raceArray[9] = r10;

假设我想将索引1处的对象放入索引0,索引0处的对象是否会转到索引1?还是将索引0处的对象从数组中删除?如果它被删除了,当我把一个对象放在一个不同的数组索引中时,我该怎么做?这些对象只是在数组中交换位置?

共有2个答案

翁建弼
2023-03-14

数组包含对对象的引用。因此,当您执行raceArray[0]=raceArray[1]时,两个内存段都将包含对相同的r2对象的引用。

阴福
2023-03-14

首先,不将对象存储到数组中,而是将对对象的引用存储到数组中。

如果您以后设置raceArray[0]=raceArray[1]从现在起,raceArray中的第0项和第一项都将引用r2。这意味着r1不再是该数组的引用。这并不意味着r1已经消失,因为其他东西仍然可以引用它。

要交换位置,可以使用以下代码:

Runner temp = raceArray[0];
raceArray[0] = raceArray[1];
raceArray[1] = temp;

你要做的是创建一个temp——一个临时变量,它引用与索引0处的数组相同的对象,然后用索引1处的引用覆盖索引0,最后用temp中的值覆盖索引1

 类似资料:
  • 我到处都找不到一个类似于我的问题的答案,在Java中。我使用的是数组,而不是数组列表。 每次在我的咖啡店下新的订单时,咖啡店必须添加到客户已经访问过的商店数组中,但它应该只出现一次,即使他们访问过两次说‘星巴克’。 我有一个main文件,一个CoffeeShop类,和一个Customer类,这三个文件都在OOP中协同工作。 我认为“this”应该是调用“.newOrder()”的特定咖啡店,但大体

  • 问题内容: 在Swift 1.2中,有一个Set对象,可用于创建静态类型的Set。 我无法找到如何在某个索引处获取对象。它具有,您可以执行以下操作:。 这将检索到该对象。但是现在我想从某个索引中获取一个对象。 但是,如何创建具有特定“索引”的SetIndex? 问题答案: Swift 3及更高版本 您可以从: Swift 2(已淘汰) 您可以从: Swift 1.x(已淘汰) 与相似,您必须从:

  • 我有一个web应用程序,它使用JSF中的数据表和Primefaces特性,以便它可以执行一些更动态的功能。在dataTable中,我有包含可编辑数据的行。我的最终目标是让用户能够编辑数据,单击save按钮,update语句将被执行以替换数据库中存在的内容。问题是,此时我不知道如何检测ArrayList中对象的更改。 我已经杀一儆百,看看有没有人能解决我的困境。听我说,我有一个代码制作了一个data

  • 我有一个2D按钮数组(按钮),它将生成一个5×5的按钮网格。我想在单击时获取单个按钮的索引(例如,(2,2)在中间),并通过创建Topcenter(这将是按钮的索引(x,y-1)或1,2,其中x和y是单击按钮的值)等整数变量,在3 x 3半径内找到围绕原始按钮的按钮的索引值。)然后,我可以向周围的按钮添加文本等。 这是一个可视化: 0,0|0,1|0,2|0,3|0,4 1,0 | 1,1 | 1

  • 我有一个对象数组,当我使用indexOf时,我想在其中找到所选对象的索引,我得到的值为-1,任何人都可以告诉我如何在javascript中找到对象的indexOf

  • 问题内容: 我是Elasticsearch的新手,正在寻找使用Java API的帮助。我有一些领域对象,例如 我已经创建了连接到节点的传输客户端 有没有简单的方法将我的对象直接插入elasticsearch? 我看到了 但是要做到这一点,我必须将每个对象都转换成json,这虽然不是我理想的情况。 如果我对它的工作方式(架构上)有误解,请告诉我,我在这里学习! 欢呼声,罗布 问题答案: 我认为您在正