【问题标题】:extract elements from array and subtract them从数组中提取元素并减去它们
【发布时间】:2015-06-27 21:17:17
【问题描述】:

我想要做的是,例如,如果我有一个我想出售的项目列表,每个项目都有一个字符串名称和 int 价格,我将它们添加到一个数组中(可能是一个 arrayList 我不是确定什么会更好,因为我希望它是用户输入)并说我向该数组添加了许多元素,如下所示: [item1, 50, item2, 100, item3, 200] 我想要做的是提取其中一个物品,例如物品 1 的价格:50 并以等于价格或更大的价格出售,然后将我以 100 出售的物品 1 放入另一个我出售的物品数组中。我希望能够对每个项目做到这一点。 我什至不想开始编码,因为我不知道该怎么做。

【问题讨论】:

  • “我什至不想开始编码”。什么短语
  • “我什至不想开始编码”而不是花钱请人为你编码。这不是慈善。
  • 我之所以这么说,是因为我知道如果我在没有真正理解的情况下开始这样做,那将毫无用处。

标签: java arrays arraylist


【解决方案1】:

只要每个项目都是唯一的,我会为此使用 Map

比如说我有:

  1. 苹果
  2. Twix

然后我想跟踪我有多少商品,以及哪些商品已售出:

Map<String,List<Item>> itemsSold = new HashMap<>();

然后为每个看起来类似于此的项目创建一个Abstract 类:

public abstract class Item {

    private String ItemId;
    private double ItemCost;
    private double ItemSellPrice;
    private boolean ItemSold;

    public Item(String ItemId, double ItemCost) {
        this.ItemId = ItemId;
        this.ItemCost = ItemCost;
    }

    public String getItemId() {
        return ItemId;
    }

    public void setItemId(String ItemId) {
        this.ItemId = ItemId;
    }

    public double getItemCost() {
        return ItemCost;
    }

    public void setItemCost(double ItemCost) {
        this.ItemCost = ItemCost;
    }

    public double getItemSellPrice() {
        return ItemSellPrice;
    }

    public void setItemSellPrice(double ItemSellPrice) {
        this.ItemSellPrice = ItemSellPrice;
    }

    public boolean isItemSold() {
        return ItemSold;
    }

    public void setItemSold(boolean ItemSold) {
        this.ItemSold = ItemSold;
    }

}

然后,您可以extendItem 为“Apple”和“Pear”等每个 Item 创建一个类并设置该类的值。

Map&lt;String,List&lt;Item&gt;&gt; itemsSold = new HashMap&lt;&gt;(); 中,您可以使用Array.size() 查看您有多少“苹果”,然后根据您认为适合的销售额添加/获取/删除它们,等等。

Java 是一种面向对象的编程语言。为您的项目创建一个漂亮的对象可以帮助您简化代码,并提高您的 OOP 技能。

使用这样的方法,您可以根据需要为每个项目扩展和添加附加代码,然后您可以使用各种方法来跟踪项目,包括它们的销售。

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    您可以为每个输入使用 2 个ArrayList&lt;Pair&lt;String,Integer&gt;&gt; 一个用于物品,另一个用于销售,将new Pair(yourItemNAme,price)添加到 ArrayList 然后对于每个售出的商品检查价格是否大于或等于商品price,然后将其从items list 中删除,并将其name 和新的price 添加到sold list

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 2021-12-24
      • 1970-01-01
      • 2020-07-22
      • 2016-10-31
      • 1970-01-01
      相关资源
      最近更新 更多