Java 如何将多个变量值存储到单个数组或列表中?
所以我有下面的变量,它们是数据类型的混合体,包括整数、字符串、双精度和数组。我已经有了填充每个变量所需的方法。我现在只需要将所有变量收集到一行数据中,然后在另一个类中显示该数据以供以后使用。数据应该以相同的数据类型保存,这样我就可以在另一个类中使用它们。同样的数据行需要多次存储。下面是我希望如何存储数据的演示Java 如何将多个变量值存储到单个数组或列表中?,java,arrays,Java,Arrays,所以我有下面的变量,它们是数据类型的混合体,包括整数、字符串、双精度和数组。我已经有了填充每个变量所需的方法。我现在只需要将所有变量收集到一行数据中,然后在另一个类中显示该数据以供以后使用。数据应该以相同的数据类型保存,这样我就可以在另一个类中使用它们。同样的数据行需要多次存储。下面是我希望如何存储数据的演示 Ticket No = 1, Ticket Type = "Lotto", Ticket Value = 2.50, Numbers = {1,2,3,4,5} Ticket No
Ticket No = 1, Ticket Type = "Lotto", Ticket Value = 2.50, Numbers = {1,2,3,4,5}
Ticket No = 2, Ticket Type = "Jackpot", Ticket Value = 2.50, Numbers = {4,1,4,5,5}
请尽可能为我提供最简单的解决方案。谢谢
int id;
String ticketType;
double value;
int[] numbers= new int[5];
类抽象表示一张票,是实现这一点的最简单方法。这是将关于票据的所有信息保存在一起而不必真正担心底层数据结构的最干净的方法
public class Ticket {
private int id;
private String ticketType;
private double value;
private int[] numbers = new int[5];
// various methods like getId, getTicketType, setId, setTicketType
// would follow from here.
}
您可以使用ArrayList您应该创建一个名为Ticket的新类。它看起来像这样:
class Ticket {
int ticketNumber;
TicketType ticketType;
int ticketValueInPence;
List<Integer> ticketDrawNumbers;
enum TicketType {
LOTTO,
JACKPOT
}
}
List<Ticket> ticketList = new ArrayList<>();
ticketList.add(anyTicket);
public class Ticket {
int id;
String ticketType;
double value;
int[] numbers;
public Ticket(){}
public Ticket(int id, String ticketType, double value, int[] numbers){
this.id = id;
this.ticketType = ticketType;
this.value = value;
this.numbers = numbers;
}
public int getId() {
return id;
}
public String getTicketType() {
return ticketType;
}
public double getValue() {
return value;
}
public int[] getNumbers() {
return numbers;
}
public void setId(int id) {
this.id = id;
}
public void setTicketType(String ticketType) {
this.ticketType = ticketType;
}
public void setValue(double value) {
this.value = value;
}
public void setNumbers(int[] numbers) {
this.numbers = numbers;
}
}
然后,在主类中,使用以下两种方法之一创建ArrayList。用你的例子
//You can create a ticket like this
Ticket ticketOne = new Ticket();
ticketOne.setId(1);
ticketOne.setTicketType("Lotto");
ticketOne.setValue(2.50);
ticketOne.setNumbers(new int[]{1, 2, 3, 4, 5});
//Alternatively, you can do it all at once
Ticket ticketTwo = new Ticket(2, "Jackpot", 2.50, new int[]{4,1,4,4,5});
ArrayList<Ticket> listOfTickets = new ArrayList<>();
listOfTickets.add(ticketOne);
listOfTickets.add(ticketTwo);
好吧,我为你们做了一切,但正如大家提到的,它实际上是面向对象编程中非常重要的概念。使用类创建新的数据类型,就像C中的结构一样。因此,您可以在列表和数组中使用此类型。我希望它有用,你也学到了一些东西
也许我应该提到toString方法。当您调用System.out.println方法时,它被隐式调用。通过这种方式,您可以得到数据类型的一个很好的字符串表示 您可以使用:
String[][][][] ticketInfo;
并在需要时使用
Integer.parseInt(ticketInfo[?][?][?][?]) and Double.parseDouble(ticketInfo[?][?][?][?])
“?”表示需要使用类的索引,然后使用该类的arraylist。
Integer.parseInt(ticketInfo[?][?][?][?]) and Double.parseDouble(ticketInfo[?][?][?][?])