我是一名Java初学者,我正在基于Stackowerflow上的一个示例构建一个简单的购物清单程序:
使用用户输入将对象添加到ArrayList的方法
用户输入(名称价格)将商品添加到购物清单中。
现在我希望输出显示通过使用即可比按价格(上升)排序的对象,但不知道如何将其添加到代码中。我真的是个初学者,所以我希望我写的东西有意义。
非常感谢。
代码如下:
import java.util.List;
import java.util.ArrayList;
public class Store {
private static final Store INSTANCE = new Store();
private List<Item> listOfItems = new ArrayList<>();
private Store() {
}
public static Store getInstance() {
return INSTANCE;
}
public void addItems(List<Item> newlistOfItems) {
listOfItems.addAll(newlistOfItems);
}
public String printListOfItems() {
StringBuilder sb = new StringBuilder();
for (Item item : listOfItems) {
sb.append(" [NAME : " + item.getName() + ", PRICE : " + item.getPrice() + "]");
}
return sb.toString();
}
}
import java.util.ArrayList;
import java.util.Scanner;
import java.util.List;
public class ItemManagerServiceImpl implements ItemManagerService {
@Override
public List<Item> createListOfItems() {
List<Item> newListOfItems = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
try {
do {
System.out.println("ENTER NAME");
String name = scanner.nextLine();
System.out.println("ENTER PRICE");
while (!scanner.hasNextDouble()) {
System.out.print("You must enter a valid number! Try again: ");
scanner.next();
}
double price = scanner.nextDouble();
Item item = new Item(name, price);
newListOfItems.add(item);
System.out.println("Continue?[Y/N]");
scanner.nextLine();
} while (scanner.nextLine().equalsIgnoreCase("y"));
} finally {
scanner.close();
}
return newListOfItems;
}
}
import java.util.List;
public interface ItemManagerService {
List<Item> createListOfItems();
}
public class Item {
private String name;
private double price;
public Item(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
}
import java.util.List;
public class MainApp {
public static void main(String[] args) {
ItemManagerService itemManagerService = new ItemManagerServiceImpl();
List<Item> newlistOfItems = itemManagerService.createListOfItems();
Store.getInstance().addItems(newlistOfItems);
System.out.println(Store.getInstance().printListOfItems());
}
}
我建议使用java。util。比较器。comparingDouble构建一个比较器,可以传递给java。util。列表排序。这可能看起来像
listOfItems.sort(Comparator.comparingDouble(Item::getPrice));
问题内容: 我正在尝试通过其score属性的值(是double值)对自定义类染色体进行排序。这些染色体存储在ArrayList中。我知道我必须使用比较器,但是在过去的一个小时里我已经在线阅读了很多不同的观点,这使我感到非常困惑。 附上我的代码,如果有人可以指出正确的方向,我将不胜感激。 不知道这有什么区别,但是分数只能是0.0到1.0之间(包括0.0到1.0)的两倍 问题答案: 要使用: 如果您打
我有长ID的数组列表 我有一个具有
但我得到一条错误消息,说无法在原语类型int上调用compareToIgnoreCase(int) 我如何修复这段代码,使它能够用整数值对列表进行排序?
所以我基本上有表格视图,那里有一些列。其中一列(价格)由字符串组成,实际上表示双精度。唯一的原因是,因为我希望双倍,例如,因为 1 将显示为 1.00。但是正因为如此,我不能正确使用默认排序(排序双精度)。我可以以某种方式更改它,所以当我按下该按钮时,它会将它们排序为双倍类型? 如果需要,请在此处编码:
我有一个对象类产品,如下所示 我想根据价格对产品进行分类。我的数组是 我做了 但问题是部分在error.It不能使用方法。我希望我的arrayList按照product.The价格的整数排序value.But当我将其更改为字符串类型时,我得到了,但它仍然未排序,因为字符串type.Please帮助我
举个例子 那么,如何按日期对该数组进行排序? 这只是一个小例子,但它就像数组中的1000个对象。我在互联网上搜索并找到了一些使用函数的示例,但它在我的大数组中不起作用。