ArrayList met arrays erin. Hoe ze eruit te halen. code is gepost

Weinig probleem ... ik wil een aantal arrays toevoegen aan mijn araylist en later toegang krijgen om ze uit te printen. Haar is mijn code ..

 import java.util.*;
 class List
{
 private ArrayList X;
 private int[] list;

public X()
{
    X = new ArrayList();
}

public void addList(int[] list)
{
     this.X.add(list);
}

public void showList(int listNumber)
{
    System.out.println(X.get(listNumber));
}

Probleem is dat ik mijn lijst niet krijg, maar de int-code iets ... dunno wat het werkelijk is ..

0
een naam geven aan uw klasse Lijst , tijdens het importeren van java.util. * [die ook de interface Lijst ] bevat, is een slechte gewoonte. Daarnaast verwijs je naar je arrays als een lijst .... Naar mijn mening zijn er veel te veel namen van dingen namen, moet je heroverwegen hoe je je klassen/variabelen een naam geeft.
toegevoegd de auteur amit, de bron

5 antwoord

Uw probleem is in de rij System.out.println (X.get (listNumber)); . Elk java-object heeft methode toString() . Arrays hebben ook zo'n methode, maar de implementatie toont de arrayverwijzing. Om de array-inhoud af te drukken, gaat u er overheen en drukt u element voor element af of gebruikt u het hulpprogramma zoals Arrays.toString() :

System.out.println (java.util.Arrays.toString (X.get (listNumber)));

2
toegevoegd

Herhaal over alle integer-arrays in X en druk in elk item (array) de elementen af. Deze functie zal het werk voor u doen.

public void printAll(){
for(int [] item:X){
 for(int num :item){
  System.out.print(num);
  }
   System.out.println();
 }

}
1
toegevoegd
overweeg om mijn antwoord te controleren .... op deze manier dank je mensen in stackoverflow
toegevoegd de auteur confucius, de bron
Ik zal dat doen ofc.
toegevoegd de auteur Swupper, de bron

Dit komt doordat arrays toString() die hier worden aangeroepen arrayreferentie afdrukken, niet de inhoud.

Gebruik in plaats daarvan aangepaste uitvoer:

    for (int i : X.get(listNumber))
        System.out.print(i + " ");

Of, zoals AlexR voorstelde, een beter gebruik leverde de JDK-methode Arrays.toString() ;

Overigens hoeft u dit. niet overal in de code van uw klas in te voeren.

1
toegevoegd

U moet de klasse Arrays gebruiken van java.util.Arrays :

System.out.println(Arrays.toString(X.get(listNumber)));

Als u een array afdrukt, wordt de geheugenlocatie afgedrukt. Om de werkelijke waarden te krijgen, moet u elk element afzonderlijk krijgen. Dit is wat Arrays.toString() voor u doet.

0
toegevoegd

Je probeert de array te krijgen. Als u de resultaten van de array wilt weergeven, moet u elke waarde in X.get (listNumber) doorlopen en de resultaten van de lus weergeven.

0
toegevoegd