Search for a specific item with a certain position number :
List<Item> itemsWithSameNumber = new ArrayList<>();
for (Item item : items) {
if (item.getItemNumber().equals(yourKey)) {
itemsWithSameNumber.add(item);
}
}
To get item lists for all item numbers:
You can use HashMapfor this case:
HashMap<BigDecimal, List<Item>> map = new HashMap<>();
for (Item item : items) {
List<Item> itemsWithSameNumber = map.get(item.getItemNumber());
if (itemsWithSameNumber == null) {
itemsWithSameNumber = new ArrayList<Item>();
map.put(item.getItemNumber(), itemsWithSameNumber);
}
itemsWithSameNumber.add(item);
}
Later you can iterate over the key set and get all the elements for each key:
for (BigDecimal key : map.keySet()) {
List<Item> listOfElementsWithSameKey = map.get(key);
}