-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparseContactsClass.java
More file actions
27 lines (21 loc) · 1.11 KB
/
Copy pathparseContactsClass.java
File metadata and controls
27 lines (21 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.List;
import java.util.Comparator;
import java.util.stream.Collectors;
public class parseContactsClass {
public static List<String> parseContacts(List<String> contacts, String sortOrder) {
if (contacts == null || contacts.isEmpty()) {
return List.of();
}
Comparator<String> comparator = (first_person, second_person) -> {
String[] first_person_name_and_surname = first_person.split(" ");
String[] second_person_name_and_surname = second_person.split(" ");
String first_lastname = (first_person_name_and_surname.length > 1) ? first_person_name_and_surname[1] : first_person_name_and_surname[0];
String second_lastname = (second_person_name_and_surname.length > 1) ? second_person_name_and_surname[1] : second_person_name_and_surname[0];
return first_lastname.compareTo(second_lastname);
};
if (sortOrder.equals("DESC")) {
comparator = comparator.reversed();
}
return contacts.stream().sorted(comparator).collect(Collectors.toList());
}
}