Mon hashmap stocke la chaîne en tant que clé et arraylist en tant que valeurs. Maintenant, je dois intégrer cela dans une liste. C'est-à-dire qu'il se présentera sous la forme suivante:
List<HashMap<String, ArrayList<String>>>
Ce sont les déclarations que j'ai utilisées:
Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
ArrayList<String> arraylist = new ArrayList<String>();
map.put(key,arraylist);
List<String> list = new ArrayList<String>();
Est-ce que quelqu'un peut m'aider quelle méthode et comment utiliser dans la liste pour y stocker ma carte?
Essayez toujours d'utiliser la référence d'interface dans Collection , cela ajoute davantage de flexibilité.
Quel est le problème avec le code ci-dessous?
List<Map<String,List<String>>> list = new ArrayList<Map<String,List<String>>>();//This is the final list you need
Map<String, List<String>> map1 = new HashMap<String, List<String>>();//This is one instance of the map you want to store in the above list.
List<String> arraylist1 = new ArrayList<String>();
arraylist1.add("Text1");//And so on..
map1.put("key1",arraylist1);
//And so on...
list.add(map1);//In this way you can add.
Vous pouvez facilement le faire comme ci-dessus.
Tout d’abord, permettez-moi de corriger un peu votre déclaration:
List<Map<String, List<String>>> listOfMapOfList =
new HashList<Map<String, List<String>>>();
S'il vous plaît faites attention que j'ai utilisé classe concrète (HashMap
) une seule fois. Il est important d’utiliser une interface permettant de modifier l’implémentation ultérieurement.
Maintenant, vous voulez ajouter un élément à la liste, n'est-ce pas? Mais l'élément est une carte, vous devez donc le créer:
Map<String, List<String>> mapOfList = new HashMap<String, List<String>>();
Maintenant, vous voulez remplir la carte. Heureusement, vous pouvez utiliser un utilitaire qui crée des listes pour vous, sinon vous devez créer des listes séparément:
mapOfList.put("mykey", Arrays.asList("one", "two", "three"));
OK, nous sommes maintenant prêts à ajouter la carte à la liste:
listOfMapOfList.add(mapOfList);
MAIS:
Arrêtez de créer des collections compliquées maintenant! Pensez au futur: vous devrez probablement changer la carte interne en un autre élément ou une liste à définir, etc. Cela vous obligera probablement à réécrire des parties importantes de votre code. Définissez plutôt la classe qui contient vos données, puis ajoutez-la à une collection à une dimension:
Appelons votre classe Student
(juste à titre d'exemple):
public Student {
private String firstName;
private String lastName;
private int studentId;
private Colectiuon<String> courseworks = Collections.emtpyList();
//constructors, getters, setters etc
}
Vous pouvez maintenant définir une collection simple:
Collection<Student> students = new ArrayList<Student>();
Si, à l'avenir, vous voulez placer vos élèves dans une carte où la clé est studentId
, procédez comme suit:
Map<Integer, Student> students = new HashMap<Integer, Student>();
Essayez ce qui suit:
List<Map<String, ArrayList<String>>> mapList =
new ArrayList<Map<String, ArrayList<String>>>();
mapList.add(map);
Si votre liste doit être de type List<HashMap<String, ArrayList<String>>>
, déclarez votre variable map
en tant que HashMap
et non pas Map
.
Tout d’abord, vous devez définir la List
comme:
List<Map<String, ArrayList<String>>> list = new ArrayList<>();
Pour ajouter la Map
à la List
, utilisez add (E e) method:
list.add(map);
class Student{
//instance variable or data members.
Map<Integer, List<Object>> mapp = new HashMap<Integer, List<Object>>();
Scanner s1 = new Scanner(System.in);
String name = s1.nextLine();
int regno ;
int mark1;
int mark2;
int total;
List<Object> list = new ArrayList<Object>();
mapp.put(regno,list); //what wrong in this part?
list.add(mark1);
list.add(mark2);**
//String mark2=mapp.get(regno)[2];
}