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 Address
en 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 Address
object 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 ArrayList
adressen van arrays opslaat omdat dat is wat terugkeert van de toString
-aanroep, of omdat dat eigenlijk is wat u opslaat?
p>
Als je een ArrayList
met arrays hebt (bijv.
int[] arr = {1, 2, 3};
houseAddress.add(arr);
Om vervolgens de arraywaarden af te drukken, moet u Arrays.deepToString
aanroepen:
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 houseAddress
waarden 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 houseAddress
en 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 Object
of 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 ArrayList
is, 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);
}
}
}