Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. package Ispitni;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Comparator;
  5. import java.util.List;
  6. import java.util.Scanner;
  7. import java.util.stream.Collectors;
  8.  
  9. public class PhoneBookTest {
  10. public static void main(String[] args) {
  11. PhoneBook phoneBook = new PhoneBook();
  12. Scanner scanner = new Scanner(System.in);
  13. int n = scanner.nextInt();
  14. scanner.nextLine();
  15. for (int i = 0; i < n; ++i) {
  16. String line = scanner.nextLine();
  17. String[] parts = line.split(":");
  18. try {
  19. phoneBook.addContact(parts[0], parts[1]);
  20. } catch (DuplicateNumberException e) {
  21. System.out.println(e.getMessage());
  22. }
  23. }
  24. while (scanner.hasNextLine()) {
  25. String line = scanner.nextLine();
  26. System.out.println(line);
  27. String[] parts = line.split(":");
  28. if (parts[0].equals("NUM")) {
  29. phoneBook.contactsByNumber(parts[1]);
  30. } else {
  31. phoneBook.contactsByName(parts[1]);
  32. }
  33. }
  34. }
  35. }
  36. class PhoneBook{
  37. List<Contact> lista;
  38.  
  39. public PhoneBook() {
  40. lista = new ArrayList<>();
  41. }
  42.  
  43. public void addContact(String name, String number)throws DuplicateNumberException {
  44. Contact c = new Contact(name, number);
  45. for(Contact x : lista){
  46. if(x.getNumber().equals(c.number)){
  47. throw new DuplicateNumberException(number);
  48. }
  49. }
  50. lista.add(c);
  51.  
  52. }
  53. public void contactsByNumber(String number){
  54. if(number.length() <= 3){
  55. return;
  56. }else{
  57. lista.stream()
  58. .filter(c -> c.getNumber().equals(number))
  59. .sorted(Comparator.comparing(Contact::getName)
  60. .thenComparing(Contact::getNumber))
  61. .forEach(System.out::println);
  62. }
  63. if(lista.isEmpty()){System.out.println("NOT FOUND");}
  64. /*List<Contact> pomosna = new ArrayList<Contact>();
  65. for (Contact c : contacts) {
  66. if(number.length()>=3 && c.getNumber().contains(number)){
  67. pomosna.add(c);
  68. //System.out.println(c);
  69. }
  70. }
  71. //System.out.println("PRED");
  72. pomosna = pomosna.stream().sorted(Comparator.comparing(Contact::getName)
  73. .thenComparing(Contact::getNumber)).collect(Collectors.toList());
  74. for (Contact c : pomosna) {
  75. System.out.println(c.toString());
  76. }
  77. //System.out.println("POSLE");
  78. if(pomosna.isEmpty())
  79. System.out.println("NOT FOUND");*/
  80. }
  81. public void contactsByName(String name){
  82. /*List<Contact> pomosna = new ArrayList<Contact>();
  83. for (Contact c : contacts) {
  84. if(c.getName().equals(name)){
  85. pomosna.add(c);
  86. }
  87. }
  88. pomosna.stream().sorted(Comparator.comparing(Contact::getName)
  89. .thenComparing(Contact::getNumber))
  90. .forEach(System.out::println);*/
  91. if(lista.isEmpty())
  92. System.out.println("NOT FOUND");
  93. lista.stream()
  94. .filter(c -> c.getName().equals(name))
  95. .sorted(Comparator.comparing(Contact::getName)
  96. .thenComparing(Contact::getNumber))
  97. .forEach(System.out::println);
  98.  
  99. }
  100.  
  101. }
  102. class Contact{
  103. String name;
  104. String number;
  105. public Contact(String name, String number) {
  106. super();
  107. this.name = name;
  108. this.number = number;
  109. }
  110. public String getName() {
  111. return name;
  112. }
  113. public void setName(String name) {
  114. this.name = name;
  115. }
  116. public String getNumber() {
  117. return number;
  118. }
  119. public void setNumber(String number) {
  120. this.number = number;
  121. }
  122. @Override
  123. public String toString() {
  124. return String.format("%s %s", name, number) ;
  125. }
  126.  
  127. }
  128. class DuplicateNumberException extends Exception{
  129. private static final long serialVersionUID = 1L;
  130. public DuplicateNumberException(String number) {
  131. super(String.format("Duplicate number: %s", number));
  132. }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement