Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Ispitni;
- import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class PhoneBookTest {
- public static void main(String[] args) {
- PhoneBook phoneBook = new PhoneBook();
- Scanner scanner = new Scanner(System.in);
- int n = scanner.nextInt();
- scanner.nextLine();
- for (int i = 0; i < n; ++i) {
- String line = scanner.nextLine();
- String[] parts = line.split(":");
- try {
- phoneBook.addContact(parts[0], parts[1]);
- } catch (DuplicateNumberException e) {
- System.out.println(e.getMessage());
- }
- }
- while (scanner.hasNextLine()) {
- String line = scanner.nextLine();
- System.out.println(line);
- String[] parts = line.split(":");
- if (parts[0].equals("NUM")) {
- phoneBook.contactsByNumber(parts[1]);
- } else {
- phoneBook.contactsByName(parts[1]);
- }
- }
- }
- }
- class PhoneBook{
- List<Contact> lista;
- public PhoneBook() {
- lista = new ArrayList<>();
- }
- public void addContact(String name, String number)throws DuplicateNumberException {
- Contact c = new Contact(name, number);
- for(Contact x : lista){
- if(x.getNumber().equals(c.number)){
- throw new DuplicateNumberException(number);
- }
- }
- lista.add(c);
- }
- public void contactsByNumber(String number){
- if(number.length() <= 3){
- return;
- }else{
- lista.stream()
- .filter(c -> c.getNumber().equals(number))
- .sorted(Comparator.comparing(Contact::getName)
- .thenComparing(Contact::getNumber))
- .forEach(System.out::println);
- }
- if(lista.isEmpty()){System.out.println("NOT FOUND");}
- /*List<Contact> pomosna = new ArrayList<Contact>();
- for (Contact c : contacts) {
- if(number.length()>=3 && c.getNumber().contains(number)){
- pomosna.add(c);
- //System.out.println(c);
- }
- }
- //System.out.println("PRED");
- pomosna = pomosna.stream().sorted(Comparator.comparing(Contact::getName)
- .thenComparing(Contact::getNumber)).collect(Collectors.toList());
- for (Contact c : pomosna) {
- System.out.println(c.toString());
- }
- //System.out.println("POSLE");
- if(pomosna.isEmpty())
- System.out.println("NOT FOUND");*/
- }
- public void contactsByName(String name){
- /*List<Contact> pomosna = new ArrayList<Contact>();
- for (Contact c : contacts) {
- if(c.getName().equals(name)){
- pomosna.add(c);
- }
- }
- pomosna.stream().sorted(Comparator.comparing(Contact::getName)
- .thenComparing(Contact::getNumber))
- .forEach(System.out::println);*/
- if(lista.isEmpty())
- System.out.println("NOT FOUND");
- lista.stream()
- .filter(c -> c.getName().equals(name))
- .sorted(Comparator.comparing(Contact::getName)
- .thenComparing(Contact::getNumber))
- .forEach(System.out::println);
- }
- }
- class Contact{
- String name;
- String number;
- public Contact(String name, String number) {
- super();
- this.name = name;
- this.number = number;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getNumber() {
- return number;
- }
- public void setNumber(String number) {
- this.number = number;
- }
- @Override
- public String toString() {
- return String.format("%s %s", name, number) ;
- }
- }
- class DuplicateNumberException extends Exception{
- private static final long serialVersionUID = 1L;
- public DuplicateNumberException(String number) {
- super(String.format("Duplicate number: %s", number));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement