当前位置: 首页 > 面试题库 >

如何计算列表中为其属性之一具有相同值的自定义对象的数量

申屠无尘
2023-03-14
问题内容

我在用Java编程。说我有一个自定义对象

class Item
{
     Integer id;
     BigDecimal itemNumber;
}

我有物品清单。

List<Item> items = new ArrayList<>();

现在,什么是java中最好的知道方法,listItems包含一些Items具有相同值的itemNumber


问题答案:

要搜索具有某些物料编号的特定物料:

//result list
List<Item> itemsWithSameNumber = new ArrayList<>();

for (Item item : items) {
    if (item.getItemNumber().equals(yourKey)) {
        itemsWithSameNumber.add(item);
    }
}

要获取所有物料编号的物料清单:

您可以HashMap在这种情况下使用:

//result map
HashMap<BigDecimal, List<Item>> map = new HashMap<>();

for (Item item : items) {
    List<Item> itemsWithSameNumber = map.get(item.getItemNumber());
    if (itemsWithSameNumber == null) { //does not exist in map yet
        itemsWithSameNumber = new ArrayList<Item>();
        map.put(item.getItemNumber(), itemsWithSameNumber);
    }
    itemsWithSameNumber.add(item); //now add the item to the list for this key
}

稍后,您可以遍历地图的键集并获取每个键的所有项目:

for (BigDecimal key : map.keySet()) {
    List<Item> listOfElementsWithSameKey = map.get(key);
}


 类似资料:
  • 问题内容: 我是Java 8的新手。我有一个类型为A的自定义对象的列表,其中A如下所示: 我想确定该列表中的所有对象是否都具有相同的名称。我可以通过遍历列表并捕获名称的先前值和当前值来实现。在这种情况下,我发现了如何计算列表中为其属性之一具有相同值的自定义对象的数量。但是,在java 8中,有没有更好的方法使用流? 问题答案: 一种方法是获取第一个列表的名称,然后调用并进行检查。

  • 获取所有名称为“Sam”的对象。

  • 问题内容: 我的ViewValue类定义如下: 在我的代码中,我需要将ViewValue实例列表转换为包含来自相应ViewValue的id字段值的列表。 我用foreach循环来做: } 有没有更好的方法来解决这个问题? 问题答案: 编辑:此答案基于以下想法:您需要对代码中其他位置的不同实体和不同属性执行类似的操作。如果您 只需 要按ID将ViewValues列表转换为Longs列表,则请坚持使用

  • 如何处理对象的javascript数组,例如: 并通过求和这些值合并重复的键。为了得到这样的东西: 我尝试过迭代并添加到一个新数组中,但这没有起到作用:

  • 问题内容: 我确信必须有一个相对简单的方法来执行此操作,但是此刻正在使我逃脱。假设我有一个这样的SQL表: 现在,我想知道A和B列的每种值组合出现多少次,而与其他列无关。因此,在此示例中,我想要这样的输出: 用什么SQL来确定呢?我觉得这绝对不是一件很不常见的事情。 谢谢! 问题答案:

  • 我看到了一些关于hashMaps的东西,但我们的工作还没有做得那么远。请保持您的答案和有用的建议,尽可能简单,你可以管理。 我有一个自定义的数据类型,它已经被制作好了,并且可以完美地工作,叫做color。该类型的唯一值是Color.Blue、Color.Red、Color.Yellow和Color.Green。 我的任务是返回颜色。如果列表中的颜色比其他颜色多,则返回颜色。如果列表中的颜色比其他颜