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);
}