以前创建了一个名为ShoppingList的shoppingItem数组。每个购物项目由用户输入并被询问名称,优先级,价格和数量。现在我试图用数组列表来做同样的事情,但我遇到了麻烦。带用户输入的ArrayList
这是我的主要当我有阵列
public static void main(String[] args) {
ShoppingList go = new ShoppingList();
go.getElement();
go.Sort();
System.out.println("hello");
go.displayResults();
}
和getElement方法是这样的:
public void getElement(){
System.out.println("You can add seven items to purchase when prompted ");
shoppingList = new ShoppingItem[numItems]; //creation of new array object
for (int i = 0; i<= numItems - 1; i++) {
shoppingList[i] = new ShoppingItem(); //shopping item objects created
System.out.println("Enter data for the shopping item " + i);
shoppingList[i].readInput();
System.out.println();
}
}
现在用ArrayList的,我只是失去了。
public static void main(String[] args) {
ArrayListShoppingList = new ArrayList();
ShoppingList //how do i call the getElement which then calls readInput()?
}
谢谢!我现在完全明白。我用了一个以前冒泡进行优先排序项目:
public void Sort(){
boolean swapped = true;
int j = 0;
ShoppingItem tmp;
while (swapped) {
swapped = false;
j++;
for(int i = 0; i < shoppingList.length - j; i++) {
if (shoppingList[i].getItemPriority() > shoppingList[i+1].getItemPriority()) {
tmp = shoppingList[i];
shoppingList[i] = shoppingList[i+1];
shoppingList[i + 1] = tmp;
swapped = true;
}
}
}
}
我仍然可以使用这种方法,对吧?只是某些事情会改变,例如.. .length会是.size()?或者我无法做到这一点?
2011-11-06
jackie
+0
您正在以两种不同的方式实施它;在第一个版本中,你有一个实例变量作为数组 - 为什么现在不要只用'ArrayList'做同样的事情? –
+0
您可以使用'Collections.sort(shoppingList)'对'List'进行排序。你不想使用你发布的冒泡排序代码。如果你想使用它,那么你可以使用'shoppingList.toArray(new ShoppingItem [shoppingList.size()])'从列表中获取数组。 –