Прошу объяснить:
1. Как получилось что массив состоящий из одних значений типа String получилось положить в Map, если в Map не одна строка, а пара Ключ-Значение?
2. В конце программы есть переопределенный метод String toString.. Почему в итоге метод toUpperCase увеличил только значение, а не ключ? (борис - "БОРИС")
package com.javarush.task.task08.task0803;
import java.util.HashMap;
import java.util.Map;
/*
Коллекция Map из котов
*/
public class Solution {
public static void main(String[] args) throws Exception {
String[] cats = new String[]{"васька", "мурка", "дымка", "рыжик", "серый", "снежок", "босс", "борис", "визя", "гарфи"};
Map<String, Cat> map = addCatsToMap(cats);
for (Map.Entry<String, Cat> pair : map.entrySet()) {
System.out.println(pair.getKey() + " - " + pair.getValue());
}
}
public static Map<String, Cat> addCatsToMap(String[] cats) {
Map<String,Cat>catmap = new HashMap<>();
for (String i:cats)
{
catmap.put(i, new Cat(i));
}
return catmap;
}
public static class Cat {
String name;
public Cat(String name) {
this.name = name;
}
@Override
public String toString() {
return name != null ? name.toUpperCase() : null;
}
}
}
ВЫВОД:
борис - БОРИС
гарфи - ГАРФИ
мурка - МУРКА
дымка - ДЫМКА
босс - БОСС
серый - СЕРЫЙ
визя - ВИЗЯ
снежок - СНЕЖОК
васька - ВАСЬКА
рыжик - РЫЖИК
Siraj
26 уровень
Не понимаю как в этом коде мы запихнули массив котов в Map
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Wladyslaw Java Developer Master
9 августа 2019, 16:44
В мапу ложится строка из того массива что ты методу передал как параметр, которая для мапы является ключом и свежесозданный объект, которому в конструктор уходит та же строка, для мапы он будет значением.
0
Андрей Ткач
9 августа 2019, 15:12
1) Вот тебе пара: ключ и значение catmap.put(i, new Cat(i)); - i - ключ, new Cat(i) - значение
2) toString у тебя относиться к классу Cat, и когда ты печатаешь мапу у тебя в ключе String, а в значении объект Cat
0
SirajJava Developer в Сбербанк
9 августа 2019, 17:51
Понял, а еще подскажи, почему мы создали обьект, а не просто Cat прописали?
{
catmap.put(i, new Cat(i));
}
0
Андрей Ткач
9 августа 2019, 20:20
а где у тебя есть объекты Cat? cats это стринги, поэтому нужно туда создавать новый объект
0