J'aime le style fonctionnel. Donc, voudrais convertir String
en Map<Position, Character>
en utilisant Java-8 (Si c'est possible fait en java-8). Où:Remplissage de la carte <> en utilisant le style Java8
clé doit être le caractère
Position
,valeur devrait être
Character
« s ne tiennent pas compte des espaces blancs.
String str = "a b c\nc d e\na b c"; // note \n (new line)
Map<Position, Character> map;
// key value
// (0,0) 'a'
// (0,1) 'b' <= skip spaces
// (0,2) 'c'
// (1,0) 'c' <= reset at new line
// ...
// (2,2) 'c'
Jusqu'à présent, je suis venu avec smth comme ça (c'est probablement tout faux):
map = str.chars()
.filter(ch -> ch != ' ')
.reduce((Map<Position, Character> m, int ch) -> {
// put magic here.
m.put(new Position(x, y), ch);
});
Désolé si on a posé une question similaire, mais mon 1 h la recherche n'a pas donnez-moi une réponse assez claire.
Pourquoi voudriez-vous utiliser un style fonctionnel lorsqu'il apparaît qu'un style de procédure va être supérieur? – corsiKa
Dans le style fonctionnel ?? J'aime ça. J'aime le look. et je pense que c'est plus facile à lire. plus je veux apprendre de nouvelles choses. –
Vous pourriez vouloir regarder 'Collectors.toMap()' https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html –