Advertisement
Hey_Donny

Inventory Manager

Jun 2nd, 2022
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.77 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.stream.Collectors;
  3.  
  4. public class InventoryManager {
  5. public static void main(String[] args) {
  6.  
  7. Scanner scanner = new Scanner(System.in);
  8.  
  9. List<Item> Items = new ArrayList<>();
  10.  
  11. boolean end = false;
  12.  
  13. do {
  14. String input = scanner.nextLine();
  15. String[] inputArray = input.split(" ");
  16. if ("end".equalsIgnoreCase(input)) {
  17. end = true;
  18. } else if (input.toLowerCase().startsWith("add")) {
  19. Items.add(createItem(input));
  20. } else if (input.toLowerCase().startsWith("filter")) {
  21. if (inputArray[2].equals("type")) {
  22. System.out.println(filterByType(Items, inputArray[3]));
  23. } else if (inputArray[3].equals("to")) {
  24. System.out.println(filterByPriceTo(Items, Double.parseDouble(inputArray[4])));
  25. } else if (inputArray[5].equals("to")) {
  26. System.out.println(filterByPriceFromTo(Items, Double.parseDouble(inputArray[4]), Double.parseDouble(inputArray[6])));
  27. } else if (inputArray[3].equals("from")) {
  28. System.out.println(filterByPriceFrom(Items, Double.parseDouble(inputArray[4])));
  29. }
  30. }
  31. } while (!end);
  32. }
  33.  
  34. private static Item createItem(String input) {
  35. String[] inputLine = input.split(" ");
  36. Item item = new Item(inputLine[1], Double.parseDouble(inputLine[2]), inputLine[3]);
  37. System.out.printf("OK: Item %s added successfully%n", item.getName());
  38. return item;
  39. }
  40.  
  41. private static String filterByType(List<Item> itemList, String type) {
  42. List<Item> myList = itemList.stream()
  43. .limit(10)
  44. .filter(item -> item.type.equals(type))
  45. .sorted(Comparator.comparing(item -> item.name))
  46. .collect(Collectors.toList());
  47. StringBuilder builder = new StringBuilder("OK: ");
  48. for (Item item : myList) {
  49. builder.append(String.format("%s (%.2f)", item.getName(), item.getPrice()));
  50. builder.append(", ");
  51. }
  52. return builder.substring(0, builder.length() - 2);
  53. }
  54.  
  55. private static String filterByPriceTo(List<Item> itemList, double maxPrice) {
  56. List<Item> myList = itemList.stream()
  57. .limit(10)
  58. .filter(item -> item.price <= (maxPrice))
  59. .sorted(Comparator.comparing(item -> item.price))
  60. .collect(Collectors.toList());
  61. StringBuilder builder = new StringBuilder("OK: ");
  62. for (Item item : myList) {
  63. builder.append(String.format("%s (%.2f)", item.getName(), item.getPrice()));
  64. builder.append(", ");
  65. }
  66. return builder.substring(0, builder.length() - 2);
  67. }
  68.  
  69. private static String filterByPriceFrom(List<Item> itemList, double minPrice) {
  70. List<Item> myList = itemList.stream()
  71. .limit(10)
  72. .filter(item -> item.price >= (minPrice))
  73. .sorted(Comparator.comparing(item -> item.price))
  74. .collect(Collectors.toList());
  75. StringBuilder builder = new StringBuilder("OK: ");
  76. for (Item item : myList) {
  77. builder.append(String.format("%s (%.2f)", item.getName(), item.getPrice()));
  78. builder.append(", ");
  79. }
  80. return builder.substring(0, builder.length() - 2);
  81. }
  82.  
  83. private static String filterByPriceFromTo(List<Item> itemList, double minPrice, double maxPrice) {
  84. List<Item> myList = itemList.stream()
  85. .limit(10)
  86. .filter(item -> item.price >= minPrice && item.price <= maxPrice)
  87. .sorted(Comparator.comparing(item -> item.price))
  88. .collect(Collectors.toList());
  89. StringBuilder builder = new StringBuilder("OK: ");
  90. for (Item item : myList) {
  91. builder.append(String.format("%s (%.2f)", item.getName(), item.getPrice()));
  92. builder.append(", ");
  93. }
  94. return builder.substring(0, builder.length() - 2);
  95. }
  96.  
  97. public static class Item {
  98.  
  99. public String name;
  100.  
  101. public double price;
  102.  
  103. public String type;
  104.  
  105. public Item(String name, double price, String type) {
  106. this.name = name;
  107. setPrice(price);
  108. this.type = type;
  109. }
  110.  
  111. public String getName() {
  112. return name;
  113. }
  114.  
  115. public void setPrice(double price) {
  116. if (price <= 0) {
  117. throw new IllegalArgumentException("");
  118. }
  119. this.price = price;
  120. }
  121.  
  122. public double getPrice() {
  123. return price;
  124. }
  125.  
  126. }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement