Java 将数组对象添加到列表中
我是java新手,在将数组对象添加到列表中时遇到问题。我已经检查了这个论坛中的主题,但找不到与我的问题类似的东西 我已经创建了一个名为Item的类,它将保存关于要出售的商品的信息,它有4个实例变量id、desc、cost、quantity。然后我有一个销售课程,它有我的主要方法。基本上,我想做的是从我的Item类中构建一个对象数组,并对我的数据进行硬编码(我已经创建了数据,但我不确定是否正确) 我已经创建了一个ArrayList,现在我要做的是将我创建的数组中的5个对象添加到列表中 这是我的项目类Java 将数组对象添加到列表中,java,arrays,list,object,Java,Arrays,List,Object,我是java新手,在将数组对象添加到列表中时遇到问题。我已经检查了这个论坛中的主题,但找不到与我的问题类似的东西 我已经创建了一个名为Item的类,它将保存关于要出售的商品的信息,它有4个实例变量id、desc、cost、quantity。然后我有一个销售课程,它有我的主要方法。基本上,我想做的是从我的Item类中构建一个对象数组,并对我的数据进行硬编码(我已经创建了数据,但我不确定是否正确) 我已经创建了一个ArrayList,现在我要做的是将我创建的数组中的5个对象添加到列表中 这是我的项目
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>();
}
}
import java.util.*;
公务舱销售{
/**
*@param args
*/
公共静态void main(字符串[]args){
int i;
项目[]项目=新项目[5];
对于(i=0;i
您可以使用:
for (i = 0; i < items.length; i++)
{
obj.add(items[i]);
}
for(i=0;i
但是为什么不在创建和填充项目后立即添加它们呢?您可以使用:
for (i = 0; i < items.length; i++)
{
obj.add(items[i]);
}
for(i=0;i
但是为什么不在项目创建和填充后立即添加它们呢?您可以使用以下命令将数组添加到列表中:
obj.addAll(Arrays.asList(items));
您可以使用以下命令将阵列添加到列表中:
obj.addAll(Arrays.asList(items));
创建arrayList并使用put方法向其添加对象,而不是在函数的开头创建数组
此外,您应该考虑使对象不可变,并将其属性传递给构造函数,而不是为每个属性调用setter,而不是在函数的开头创建数组,创建arrayList并使用put方法向其中添加对象
此外,您应该考虑使对象不可变,并将其属性传递给构造函数,而不是为每个属性调用setter任何建议都将不胜感激。任何建议都将不胜感激。这是我的课堂项目,这是我的导师希望我们做的。我们还假设询问用户是否要添加更多项目。如果没有,那么我们必须打印出总成本。非常感谢您提供的信息,我将尝试将其添加到我的代码中。您的意思是“为什么不”而不是“为什么现在”?这是我的课堂专题,这是我的导师希望我们做的。我们还假设询问用户是否要添加更多项目。如果没有,那么我们必须打印出总成本。非常感谢您提供的信息,我将尝试将其添加到我的代码中。您的意思是“为什么不”而不是“为什么现在”?这可能是一个愚蠢的问题。但我还是会问,这段代码和另一段发布的代码是否会将我数组中的所有硬编码数据添加到我的列表中??我如何知道它是否被添加,我可以测试它吗,或者我的意思是打印出我的列表?
System.out.println(obj)
将打印出您的列表,但您必须覆盖类项中的方法toString
来打印列表中每个对象的可打印格式OK!再次感谢你,我刚刚试过,效果不错。谢谢你的链接。@Mariell:如果这对你有效,你可以接受答案。这样你可以鼓励人们帮助你。这可能是个愚蠢的问题。但我还是会问,这段代码和另一段发布的代码是否会将我数组中的所有硬编码数据添加到我的列表中??我如何知道它是否被添加,我可以测试它吗,或者我的意思是打印出我的列表?System.out.println(obj)
将打印出您的列表,但您必须覆盖类项中的方法toString
来打印列表中每个对象的可打印格式OK!再次感谢你,我刚刚试过,效果不错。也谢谢你的链接。@Mariell:如果这对你有效,你可以接受答案。这样你就鼓励人们帮助你