To search for a specific item with some item number:
//result list
List<Item> itemsWithSameNumber = new ArrayList<>();
for (Item item : items) {
if (item.getItemNumber().equals(yourKey)) {
itemsWithSameNumber.add(item);
}
}
To get lists of items for all item numbers:
You can use a HashMap
for this case:
//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
}
Later on, you can iterate over map's keyset and get all items for each key:
for (BigDecimal key : map.keySet()) {
List<Item> listOfElementsWithSameKey = map.get(key);
}