Lors de la programmation en Java, à la fois avec et sans formation Je pense que List, Map, etc. apparaissent souvent (parfois Set, Iterator, etc.).
Cependant, ce qui est converti après une longue période Parce que ça devrait être "ça? Comment convertissez-vous cela?"
Méthodes statiques pour celles qui ont des noms de classe, méthodes d'instance pour celles qui n'ont que des noms de méthode
\ Destination de conversion Source de conversion |Liste, ensemble, etc.(Collection) |
Map | Iterator | Stream | Tableau |
---|---|---|---|---|
List/Set etc. (Collection) |
constructeur | - | iterator() | stream() |
Map | entrySet(), keySet(), values() | constructeur | (Via Set) | (Via Set) |
Stream | Collect() | Collect() | iterator() | Fonctionnement intermédiaire en général |
Tableau | (Liste uniquement) Arrays.asList()※ |
- | (Via liste) | Steam.of() |
Les classes de collection intégrées de Java (ArrayList, HashSet, ArrayDeque, etc.) Certains constructeurs mettent une Collection. Map n'est pas une collection, mais Map → Map peut faire de même.
Collection.java
//Préparez l'ensemble à l'avance
Set<String> ESet = Set.of("list","set","deque");
//Définir sur liste!
List<String> EList = new ArrayList(Eset);
Si vous ne voulez que la liste de clés, utilisez keySet. Si vous ne voulez que le contenu, utilisez values (). entrySet () si vous souhaitez utiliser les deux dans l'instruction for
Map.java
//Préparez la carte à l'avance
Map<String,Collection<String>> EMap = new HashMap<>();
EMap.put("list",List.of("list"));
EMap.put("set",Set.of("set"));
//Carte à définir!
Set<String> ESet = EMap.keySet();
//Réglez sur Iterator!
ESet.iterator();
//Carte → Itérateur est également possible en connectant
EMap.keySet().iterator();
List.java
List<String> EList = List.of("list","set","deque");
String[] EArray = EList.toArray(new String[0]);
Depuis Stream, vous pouvez en faire une Collection en utilisant collect (). (Il est également possible d'utiliser autre chose que Collection, comme un tableau ou une carte) En particulier, vous pouvez facilement créer presque n'importe quelle collection en utilisant Collectors.toCollection.
Set.java
List<String> EList = List.of("list","set","deque");
//Convertir en ensemble
Set<String> ESet = EList.stream().collect(Collectors.toSet());
Remarque: ** Collectors.toSet () et Collectors.toList () ne sont pas garantis modifiables ou impossibles! **
(Exemple: toList est actuellement une ArrayList, mais elle peut soudainement devenir une liste immuable)
Map.java
List<Integer> EList = List.of(1,2,3);
//Convertir un élément de liste en clé et une chaîne en Map pour le définir sur valeur
Map<Integer,String> EMap = EList.stream().collect(Collectors.toMap(Function.identity(), String::valueOf));
LinkedList.java
List<Integer> EList = List.of(1,2,3);
//Si vous souhaitez spécifier la classe d'implémentation de List, utilisez toCollection
LinkedList<Integer> EList = EList.stream().collect(Collectors.toCollection(LinkedList::new));
Recommended Posts