ArrayLijst afdrukken

Ik heb een ArrayList die adresobjecten bevat.

Hoe druk ik de waarden van deze ArrayList af, wat inhoudt dat ik de inhoud van de Array afdruk, in dit geval getallen.

Ik kan het alleen het werkelijke geheugenadres van de array laten afdrukken met deze code:

for(int i = 0; i < houseAddress.size(); i++) {   
    System.out.print(houseAddress.get(i));
}  

Antwoord 1, autoriteit 100%

list.toString() is goed genoeg.

De interface List definieert geen contract voor toString(), maar de basisklasse AbstractCollection biedt een nuttige implementatie die ArrayList erft.


Antwoord 2, autoriteit 20%

Voeg de methode toString()toe aan uw klasse Addressen doe dat dan

System.out.println(Arrays.toString(houseAddress));

Antwoord 3, autoriteit 16%

Voor zover ik begrijp probeer je een ArrayList met arrays af te drukken en een manier om dat weer te geven zou zijn

System.out.println(Arrays.deepToString(list.toArray()));

Antwoord 4, autoriteit 7%

aangezien je geen aangepaste implementatie voor de toString()-methode hebt opgegeven, roept het de standaard aan waarmee het adres in het geheugen voor dat object wordt afgedrukt

oplossing
in uw Address-klasse de methode toString()op deze manier overschrijven

public class Address {
int addressNo ; 
....
....
...
protected String toString(){
    return Integer.toString(addressNo);
}

nu als je belt

houseAddress.get(i)  in the `System.out.print()` method like this

System.out.print( houseAddress.get(i) )het toString()van het Addressobject zal


Antwoord 5, autoriteit 7%

Je kunt het gewoon geven als:

System.out.println("Address:" +houseAddress);

Uw uitvoer ziet eruit als [address1, address2, address3]

Dit komt omdat de klasse ArrayList of zijn superklasse een functie toString() zou hebben overschreven.

Hopelijk helpt dit.


Antwoord 6, autoriteit 6%

Assium dat je zo’n lijst met nummers hebt

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);

als u de lijst afdrukt

//method 1
// Conventional way of printing arraylist
for (int number : numbers) {
    System.out.print(number);
}
//method 2
// Lambda Expression to print arraylist
numbers.forEach((Integer value) -> System.out.print(value));
//method 3
// Lambda Expression to print arraylist
numbers.forEach(value -> System.out.print(value));
//method 4
// Lambda Expression (method reference) to print arraylist
numbers.forEach(System.out::print);

Antwoord 7, autoriteit 4%

Beweert u dat ArrayListadressen van arrays opslaat omdat dat is wat terugkeert van de toString-aanroep, of omdat dat eigenlijk is wat u opslaat?

p>

Als je een ArrayListmet arrays hebt (bijv.

int[] arr = {1, 2, 3};
houseAddress.add(arr);

Om vervolgens de arraywaarden af ​​te drukken, moet u Arrays.deepToStringaanroepen:

for (int i = 0; i < houseAddress.size(); i++) {
     System.out.println(Arrays.deepToString(houseAddress.get(i)));
}

Antwoord 8, autoriteit 3%

public void printList(ArrayList<Address> list){
    for(Address elem : list){
        System.out.println(elem+"  ");
    }
}

Antwoord 9, autoriteit 2%

Sinds Java 8kunt u de methode forEach()gebruiken vanuit de Iterable-interface.
Het is een standaardmethode. Als argument is een object van klasse nodig, dat de functionele interface Consumerimplementeert. U kunt Consumer op drie manieren lokaal implementeren:

Met anonieme klas:

houseAddress.forEach(new Consumer<String>() {
    @Override
    public void accept(String s) {
        System.out.println(s);
    }
}); 

lambda-expressie:

houseAddress.forEach(s -> System.out.println(s));

of door gebruik te maken van methodereferentie:

houseAddress.forEach(System.out::print);

Deze manier van afdrukken werkt voor alle implementaties van de Iterableinterface.
Allemaal geven ze u de manier om te definiëren hoe de elementen worden afgedrukt, terwijl toString()de afdruklijst in één formaat afdwingt.


Antwoord 10, autoriteit 2%

Zet houseAddress.get(i)tussen haakjes en roep de functie .toString()aan: i.e. Zie hieronder

for(int i = 0; i < houseAddress.size(); i++) {
    System.out.print((houseAddress.get(i)).toString());
}

Antwoord 11, autoriteit 2%

Ik weet niet zeker of ik het begrip adressen heb begrepen (ik neem hier houseAddress aan), maar als u op zoek bent naar een manier om de ArrayList af te drukken, hier gaat u:

System.out.println(houseAddress.toString().replaceAll("\\[\\]", ""));

Antwoord 12, autoriteit 2%

public static void main(String[] args) {
        List<Moyen> list = new ArrayList<Moyen>();
        Moyen m1 = new Moyen();
        m1.setCodification("c1");
        m1.setCapacityManager("Avinash");
        Moyen m2 = new Moyen();
        m2.setCodification("c1");
        m2.setCapacityManager("Avinash");
        Moyen m3 = new Moyen();
        m3.setCodification("c1");
        m3.setCapacityManager("Avinash");
        list.add(m1);
        list.add(m2);
        list.add(m3);
        System.out.println(Arrays.toString(list.toArray()));
    }

Antwoord 13, autoriteit 2%

De eenvoudigste manier om een ​​ArrayList af te drukken is door toString te gebruiken

List<String> a=new ArrayList<>();
    a.add("111");
    a.add("112");
    a.add("113");
    System.out.println(a.toString());

Uitvoer

[111, 112, 113]


Antwoord 14, autoriteit 2%

Je kunt een Iterator gebruiken. Het is het meest eenvoudige en minst controversiële wat je hier kunt doen. Stel dat houseAddresswaarden heeft van het gegevenstype String

Iterator<String> iterator = houseAddress.iterator();
while (iterator.hasNext()) {
    out.println(iterator.next());
}

Opmerking: je kunt hiervoor zelfs een verbeterde for-lus gebruiken, zoals ik in een ander antwoord heb genoemd


Antwoord 15

Dit heeft me geholpen:

System.out.println(Arrays.toString(codeLangArray.toArray()));

Antwoord 16

als u de @Override public String toString() als opmerkingen maakt,
u zult dezelfde resultaten hebben als u deed.
Maar als u uw methode toString() implementeert, zal het werken.

public class PrintingComplexArrayList {

public static void main(String[] args) {
    List houseAddress = new ArrayList();
    insertAddress(houseAddress);
    printMe1(houseAddress);
    printMe2(houseAddress);
}
private static void insertAddress(List address)
{
    address.add(new Address(1));
    address.add(new Address(2));
    address.add(new Address(3));
    address.add(new Address(4));
}
private static void printMe1(List address)
{
    for (int i=0; i<address.size(); i++)
        System.out.println(address.get(i));
}
private static void printMe2(List address)
{
    System.out.println(address);
}

}

klasse adres{
privé int-adres;
openbaar adres (int i)
{
addr = ik;
}

@Override public String toString()
{
    Integer iAddr = new Integer (addr);
    return iAddr.toString();
}

}


Antwoord 17

Je kunt zelfs een verbeterde for-lus of een iterator gebruiken zoals:

for (String name : houseAddress) {
    System.out.println(name);
}

U kunt het wijzigen in elk gegevenstype houseAddressen het voorkomt onnodige conversies


Antwoord 18

JSON

Een alternatieve oplossing zou kunnen zijn om uw lijst in de JSON-indeling te converteren en de Json-String af te drukken. Het voordeel is een goed geformatteerde en leesbare Object-String zonder de noodzaak om de toString()te implementeren. Bovendien werkt het direct voor elk ander Objectof Collection.

Voorbeeld met Google’s Gson:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
...
public static void printJsonString(Object o) {
    GsonBuilder gsonBuilder = new GsonBuilder();
    /*
     * Some options for GsonBuilder like setting dateformat or pretty printing
     */
    Gson gson = gsonBuilder.create();
    String json= gson.toJson(o);
    System.out.println(json);
}

Antwoord 19

Zorg ervoor dat je een getter hebt in de huisadresklasse en gebruik dan:

for(int i = 0; i < houseAddress.size(); i++) {   
    System.out.print(houseAddress.get(i)**.getAddress()**);
}

Antwoord 20

u kunt het afdrukformaat gebruiken als u het element alleen op de console wilt afdrukken.

for(int i = 0; i < houseAddress.size(); i++) {   
    System.out.printf("%s", houseAddress.get(i));
}  

Antwoord 21

Ervan uitgaande dat houseAddress.get(i)een ArrayListis, kunt u toString()toevoegen na de ArrayList:

for(int i = 0; i < houseAddress.size(); i++) {   
    System.out.print(houseAddress.get(i).toString());
} 

Een algemeen voorbeeld:

ArrayList<Double> a = new ArrayList();
a.add(2.);
a.add(32.);
System.out.println(a.toString());
// output
// [2.0, 32.0]

Antwoord 22

Dit is een eenvoudige code om de waarde in ArrayList toe te voegen en de ArrayList-waarde af te drukken

public class Samim {
public static void main(String args[]) {
    // Declare list
    List<String> list = new ArrayList<>();
    // Add value in list
    list.add("First Value ArrayPosition=0");
    list.add("Second Value ArrayPosition=1");
    list.add("Third Value ArrayPosition=2");
    list.add("Fourth Value ArrayPosition=3");
    list.add("Fifth Value ArrayPosition=4");
    list.add("Sixth Value ArrayPosition=5");
    list.add("Seventh Value ArrayPosition=6");
    String[] objects1 = list.toArray(new String[0]);
    // Print Position Value
    System.err.println(objects1[2]);
    // Print All Value
    for (String val : objects1) {
        System.out.println(val);
      }
    }
}

Other episodes