在数组中的同一索引处保存多个值

Holding multiple values at same index in array

我的代码检索了一些步骤,然后通过for循环在每个步骤输出一条指令。将有标题、描述、视频和音频。但是,我正在想办法将每个变量存储到一个结构中。这是我想出的,但我不认为数组可以在同一索引处存储多个值。

for(int i = 0; i < QRData.number_steps; i++){
        System.out.println("Inside for loop");
        array[i].setTitle(btn_instructions.get(i));
        array[i].setDescription(instruction_row.get(i));
        array[i].setInstructionVideo(videos.get(i));
        array[i].setAudioInstruction(audio.get(i));
}

有什么更好的方法来存储这些值,以便以后轻松检索它们?我很确定我的方法行不通。

您应该创建一个新对象来存储这些值,然后将该对象存储在数组中。

您必须使用对象数组,使用它您将创建一个 class 和您的 class 的数组,例如检查以下代码:

class Person{
private String name;
private Integer age;

Person(String name,Integer age){
     this.name=name;
     this.age=age;
}
----getters and setters methods-----

}

class Test{
public static void main(String args[]){
Person arr[]=new  Person[10];
arr[0]=new Person("Alex",26);
}
}

在此处查看完整示例http://www.java2s.com/Tutorial/Java/0200__Generics/ArraysStoringclassobjectsinArrayasdataitems.htm

干杯

您应该创建一个 Object 如:

public class DataStorage{

  private String title;

  private String description;

  private File audioFile;

  private File videoFile;

  public DataStorage(String title, String description, File audioFile, File videoFile){
    this.title = title;
    this.description = description;
    this.audioFile = audioFile;
    this.videoFile = videoFile;
  }

  public String getTitle(){
    return this.title;
  }
 //similar for "description", "audioFile" and "videoFile"
 //...
}

对于 DataStorage,我建议使用 ArrayList,因为它是动态的,您可以在 Programm 为 运行 时添加新元素。 然后你可以用循环将数据保存在那里:

ArrayList<DataStorage> storage = new ArrayList<>();

for(int i = 0; i < QRData.number_steps; i++){
    storage.add(new DataStorage(btn_instructions.get(i),instruction_row.get(i),
    videos.get(i),audio.get(i));
}

这是object面向编程定义classes来存储自定义数据的基本概念。

您现在可以通过调用 Datastorage class 的 "getters" 从数组中获取数据。 例如:

String title = storage.get(itemNumber).getTitle();

为您提供 "itemNumber" 标题的价值。