J'aimerais faire quelque chose comme ça:
private ArrayList<String[]> addresses = new ArrayList<String[3]>();
Ça n'a pas l'air de fonctionner. Quel est le moyen le plus simple de stocker plusieurs adresses avec 3 champs par adresse dans un tableau sans créer de classe distincte?
Utilisez une seconde ArrayList pour les 3 chaînes, pas un tableau primitif. C'est à dire.private List<List<String>> addresses = new ArrayList<List<String>>();
Ensuite, vous pouvez avoir:
ArrayList<String> singleAddress = new ArrayList<String>();
singleAddress.add("17 Fake Street");
singleAddress.add("Phoney town");
singleAddress.add("Makebelieveland");
addresses.add(singleAddress);
(Je pense que des choses étranges peuvent se produire avec l'effacement du texte ici, mais je ne pense pas que cela devrait compter ici)
Si vous êtes prêt à utiliser un tableau primitif, seul un changement mineur est requis pour que votre exemple fonctionne. Comme expliqué dans d'autres réponses, la taille du tableau ne peut pas être incluse dans la déclaration. Donc changeant:
private ArrayList<String[]> addresses = new ArrayList<String[3]>();
à
private ArrayList<String[]> addresses = new ArrayList<String[]>();
marchera.
List<String[]> addresses = new ArrayList<String[]>();
String[] addressesArr = new String[3];
addressesArr[0] = "zero";
addressesArr[1] = "one";
addressesArr[2] = "two";
addresses.add(addressesArr);
Je n'utiliserais pas de tableaux. Ils sont problématiques pour plusieurs raisons et vous ne pouvez pas le déclarer en termes de taille de tableau spécifique. Essayer:
List<List<String>> addresses = new ArrayList<List<String>>();
Mais honnêtement pour les adresses, je créerais une classe pour les modéliser.
Si vous utilisiez des tableaux, ce serait:
List<String[]> addresses = new ArrayList<String[]>();
c'est-à-dire que vous ne pouvez pas déclarer la taille du tableau.
Enfin, ne déclarez pas vos types en tant que types concrets dans des cas comme celui-ci (c'est-à-dire pour addresses
). Utilisez l'interface comme je l'ai fait ci-dessus. Cela s'applique aux variables membres, aux types de retour et aux types de paramètres.
Méthode simple et directe pour créer ArrayList of String
List<String> category = Arrays.asList("everton", "liverpool", "swansea", "chelsea");
À votre santé
Vous ne pouvez pas forcer les tableaux String à avoir une taille spécifique. Tu peux le faire:
private List<String[]> addresses = new ArrayList<String[]>();
mais un tableau de toute taille peut être ajouté à cette liste.
Cependant, comme d'autres l'ont mentionné, la bonne chose à faire ici est de créer une classe distincte représentant les adresses. Ensuite, vous auriez quelque chose comme:
private List<Address> addresses = new ArrayList<Address>();
private List<String[]> addresses = new ArrayList<String[]>();
cela fonctionnera définitivement ...
essaye ça
ArrayList<ArrayList<String>> PriceModelList = new ArrayList<>();
ArrayList<ArrayList<String>> PriceQtyList = new ArrayList<>();
ArrayList<ArrayList<String>> PriceTotalList = new ArrayList<>();
for (int i = 0; i < CustomerNames.length; i++) {
PriceModelList.add(new ArrayList<String>());
String[] PriceModel = {"s6", "s7", "note4", "note5", "j5", "j6"};
for (int j = 0; j < PriceModel.length; j++) {
PriceModelList.get(i).add(PriceModel[j]);
}
PriceQtyList.add(new ArrayList<String>());
String[] PriceQut = {"12", "13", "21", "15", "43", "21"};
for (int k = 0; k < PriceQut.length; k++) {
PriceQtyList.get(i).add(PriceQut[k]);
}
PriceTotalList.add(new ArrayList<String>());
String[] PriceTotal = {"1323", "1312321", "43123212", "43434", "12312", "43322"};
for (int m = 0; m < PriceTotal.length; m++) {
PriceTotalList.get(i).add(PriceTotal[m]);
}
}
ArrayList<ArrayList<ArrayList<String>>> CustomersShoppingLists = new ArrayList<>();
CustomersShoppingLists.add(PriceModelList);
CustomersShoppingLists.add(PriceQtyList);
CustomersShoppingLists.add(PriceTotalList);
Les travaux suivants dans Java 8 ..
List<String[]> addresses = new ArrayList<>();