fork(1) download
  1. import java.util.*;
  2. import java.util.stream.Collectors;
  3.  
  4. public class Main {
  5.  
  6. int i = 0;
  7.  
  8. static class Item<T extends Comparable<T>> implements Comparable<Item<T>> {
  9. long id;
  10. T sortingKey;
  11.  
  12. public Item(T key) {
  13. this.sortingKey = key;
  14. }
  15.  
  16. @Override
  17. public int compareTo(Item<T> o) {
  18. return sortingKey.compareTo(o.sortingKey);
  19. }
  20. }
  21.  
  22. public List<Long> getSortedIds(int itemType) {
  23. if (itemType == 1) {
  24. List<Item<Long>> items = getItems(1, Long.class);
  25. Collections.sort(items);
  26. return items.stream().map(it -> it.id).collect(Collectors.toList());
  27. } else if (itemType == 2) {
  28. List<Item<Date>> items = getItems(2, Date.class);
  29. Collections.sort(items);
  30. return items.stream().map(it -> it.id).collect(Collectors.toList());
  31. }
  32. //...
  33. return null;
  34. }
  35.  
  36.  
  37. public <T extends Comparable<T>> List<Item<T>> getItems(int itemType, Class<T> cl) {
  38. List<Item<T>> items = new ArrayList<>();
  39.  
  40. Object valueFromDb = getFakeValueFromDb(itemType);
  41. T casted = (T) valueFromDb;
  42. items.add(new Item<>(casted));
  43.  
  44. valueFromDb = getFakeValueFromDb(itemType);
  45. casted = (T) valueFromDb;
  46. items.add(new Item<>(casted));
  47.  
  48. return items;
  49. }
  50.  
  51. private Object getFakeValueFromDb(int itemType) {
  52. if (itemType == 1) {
  53. return i++;
  54. } else if (itemType == 2) {
  55. return new Date();
  56. }
  57. return null;
  58. }
  59.  
  60. public static void main(String[] args) {
  61. new Main().getSortedIds(1);
  62. }
  63. }
  64.  
Success #stdin #stdout 0.25s 33620KB
stdin
Standard input is empty
stdout
Standard output is empty