-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
77 lines (46 loc) · 3.67 KB
/
Solution.java
File metadata and controls
77 lines (46 loc) · 3.67 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//And in those days shall men seek death, and shall not find it; and shall desire to die, and death shall flee from them. (Revelation 9:6)
package com.javarush.task.task35.task3505;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/*
List to Map
*/
public class Solution {
public static void main(String[] args) {
List<ConvertableUser> users = new ArrayList<>();
users.add(new ConvertableUser(234, "First User"));
users.add(new ConvertableUser(235, "Second User"));
users.add(new ConvertableUser(236, "Third User"));
Map<Integer, ConvertableUser> newMap = ConvertableUtil.convert(users);
System.out.println(newMap);
//{236=ConvertableUser{id=236, name='Third User'},
// 235=ConvertableUser{id=235, name='Second User'},
// 234=ConvertableUser{id=234, name='First User'}}
//////////////////////////////////////////////////////////
List<ConvertableBook> books = new ArrayList<>();
books.add(new ConvertableBook("First Book"));
books.add(new ConvertableBook("Second Book"));
books.add(new ConvertableBook("Third Book"));
Map<String, ConvertableBook> bookMap = ConvertableUtil.convert(books);
System.out.println(bookMap);
//{Third Book=ConvertableBook{name='Third Book'},
// First Book=ConvertableBook{name='First Book'},
// Second Book=ConvertableBook{name='Second Book'}}
}
}
/*
List to Map
Реализуй логику метода convert в классе ConvertableUtil, который должен возвращать словарь, значениями которого являются элементы переданного cписка, а ключами являются объекты, полученные вызовом интерфейсного метода getKey.
Элементы cписка должны наследоваться от Convertable, который в свою очередь параметризирован каким-то ключом.
Например, ConvertableBook параметризирован String, т.е. ключ в результирующем словаре должен иметь тип - String
ConvertableUser параметризирован Integer, т.е. ключ в результирующем словаре должен иметь тип - Integer
Значения в словаре должны совпадать с элементами Списка.
Смотрите метод main для примера.
Расставьте в методе ConvertableUtil.convert дженерик типы.
Требования:
1. В множестве значений словаря возвращенного методом convert класса ConvertableUtil должны содержаться все элементы конвертируемого списка.
2. Размер словаря возвращенного методом convert класса ConvertableUtil должен быть равен размеру конвертируемого списка.
3. В множестве ключей словаря возвращенного методом convert класса ConvertableUtil должны содержаться ключи конвертируемого списка, полученные с помощью вызова метода getKey на каждом объекте списка.
4. Конвертация должна проходить в соответствии с условием задачи, ключи получаем с помощью метода getKey, а значением служат сами объекты списка.
*/