fork download
  1. import java.util.*;
  2. import java.util.stream.*;
  3.  
  4.  
  5. class O {
  6. private final int id;
  7. public O(final int id) { this.id = id; }
  8. @Override public String toString() { return "" + id; }
  9. }
  10.  
  11. class Ideone {
  12. private static final O[] array = new O[]{
  13. new O(1),
  14. new O(2),
  15. new O(3),
  16. new O(4)
  17. };
  18.  
  19. private static Optional<O> retrieve(final int id) {
  20. if(id >= 0 && id < array.length)
  21. return Optional.of(array[id]);
  22. else
  23. return Optional.ofNullable(null);
  24. }
  25.  
  26. private static List<O> get(final List<Integer> ids) {
  27. final List<O> result = new ArrayList<O>();
  28. for(final int id : ids) {
  29. final Optional<O> o = retrieve(id);
  30. if(o.isPresent())
  31. result.add(o.get());
  32. else
  33. System.out.println("[Error] Invalid ID: " + id);
  34. }
  35. return result;
  36. }
  37.  
  38. public static void main(final String[] arguments) {
  39. final List<Integer> ids = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8);
  40. final List<O> objects = get(ids);
  41. System.out.println("Objects: [" + String.join(", ", objects.stream().map(Object::toString).collect(Collectors.toList())) + "]");
  42. }
  43. }
  44.  
Success #stdin #stdout 0.13s 36792KB
stdin
Standard input is empty
stdout
[Error] Invalid ID: 4
[Error] Invalid ID: 5
[Error] Invalid ID: 6
[Error] Invalid ID: 7
[Error] Invalid ID: 8
Objects: [1, 2, 3, 4]