我是java的新手,我在将数组对象添加到列表时遇到问题。我已经检查了这个论坛中的主题,但找不到与我的问题相似的东西。
我已经创建了一个名为Item的类,它将保存有关待售物品的信息,它有4个实例变量id,desc,cost,quantity。然后我有一个Sales类,它有我的主要方法。基本上我想要做的是从我的Item类构建一个对象数组并硬编码我的数据(我已经创建了,我不确定我是否做得对)。
我创建了一个ArrayList,我现在要做的是将我创建的数组中的5个对象添加到列表中。
这是我的Item类
public class Item {
private String itemID;
private String desc;
private double cost;
private int quantity;
public Item() {
itemID="";
desc="";
cost=0;
quantity=0;
}
public Item(String id, String d, double c, int q) {
itemID = id;
desc = d;
cost = c;
quantity = q;
}
/**
* @return the itemID
*/
public String getItemID() {
return itemID;
}
/**
* @param itemID the itemID to set
*/
public void setItemID(String itemID) {
this.itemID = itemID;
}
/**
* @return the desc
*/
public String getDesc() {
return desc;
}
/**
* @param desc the desc to set
*/
public void setDesc(String desc) {
this.desc = desc;
}
/**
* @return the cost
*/
public double getCost() {
return cost;
}
/**
* @param cost the cost to set
*/
public void setCost(double cost) {
this.cost = cost;
}
/**
* @return the quantity
*/
public int getQuantity() {
return quantity;
}
/**
* @param quantity the quantity to set
*/
public void setQuantity(int quantity) {
this.quantity = quantity;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Item [itemID=" + itemID + ", desc=" + desc + ", cost=" + cost
+ ", quantity=" + quantity + "]";
}
}
我的销售课程:
import java.util.*;
public class Sales {
/**
* @param args
*/
public static void main(String[] args) {
int i;
Item[] items = new Item[5];
for(i = 0; i < items.length; i++)
{
items[i]= new Item(); // create array
}
//hard-coded values of id, desc, cost, qty
items[0].setItemID("PN250");
items[1].setItemID("ER100");
items[2].setItemID("PP150");
items[3].setItemID("MK200");
items[4].setItemID("PN300");
items[0].setDesc("Pen");
items[1].setDesc("Eraser");
items[2].setDesc("Paper");
items[3].setDesc("Marker");
items[4].setDesc("Pen");
items[0].setCost(1.50);
items[1].setCost(1.25);
items[2].setCost(3.75);
items[3].setCost(2.50);
items[4].setCost(2.25);
items[0].setQuantity(0);
items[1].setQuantity(175);
items[2].setQuantity(310);
items[3].setQuantity(75);
items[4].setQuantity(450);
double total = 0;
for(Item d : items)
{
System.out.print(d.getItemID());
System.out.print("\t" + d.getDesc());
System.out.print("\t" + d.getCost());
System.out.println("\t" + d.getQuantity());
}
List<Item> obj;
obj = new ArrayList<Item>();
}
}
答案 0 :(得分:4)
您可以使用以下内容将数组添加到列表中:
obj.addAll(Arrays.asList(items));
答案 1 :(得分:1)
您可以使用:
for (i = 0; i < items.length; i++)
{
obj.add(items[i]);
}
但为什么不在创建项目后立即添加项目&amp;填充?
答案 2 :(得分:1)
不是在函数的开头创建数组,而是使用put方法创建一个arrayList并向其添加对象。
此外,您应该考虑使对象不可变并将其属性传递给构造函数,而不是为每个属性调用setter