Address 개체가 포함 된 ArrayList가 있습니다.
이 ArrayList의 값을 어떻게 인쇄합니까? 즉, Array의 내용,이 경우 숫자를 인쇄합니다.
이 코드를 사용하여 배열의 실제 메모리 주소 만 출력 할 수 있습니다.
for(int i = 0; i < houseAddress.size(); i++) {
System.out.print(houseAddress.get(i));
}
Address 개체가 포함 된 ArrayList가 있습니다.
이 ArrayList의 값을 어떻게 인쇄합니까? 즉, Array의 내용,이 경우 숫자를 인쇄합니다.
이 코드를 사용하여 배열의 실제 메모리 주소 만 출력 할 수 있습니다.
for(int i = 0; i < houseAddress.size(); i++) {
System.out.print(houseAddress.get(i));
}
houseAddress
변수 의 선언 과 포함 된 요소에 대한 샘플 코드를 알려주십시오.
답변:
list.toString ()이면 충분합니다.
인터페이스 List는 toString ()에 대한 계약을 정의하지 않지만 AbstractCollection 기본 클래스는 ArrayList가 상속하는 유용한 구현을 제공합니다.
Arrays.toString(houseAddress.toArray())
toString()
해당 요소의 내용을 인쇄하도록 재정의 합니다. 따라서 모든 요소를 list.toString()
인쇄합니다 toString()
. 이는 모든 컬렉션에 해당됩니다.
사용자 정의 구현을 제공하지 않았기 때문에 toString()
메서드에 해당 개체의 메모리에 주소를 인쇄 할 기본값을 호출합니다.
주소 클래스의 솔루션 은 다음 toString()
과 같은 방법을 재정의합니다.
public class Address {
int addressNo ;
....
....
...
protected String toString(){
return Integer.toString(addressNo);
}
이제 전화 할 때
houseAddress.get(i) in the `System.out.print()` method like this
System.out.print( houseAddress.get(i) )
toString()
의 Address
객체가 호출된다
그런 숫자 목록이있는 assium
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
목록을 인쇄하면
//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);
그것이 ArrayList
배열의 주소를 저장하는 것입니다.toString
통화 또는 그 무엇을있는 거 저장 실제로 때문에?
ArrayList
배열 이있는 경우 (예 :
int[] arr = {1, 2, 3};
houseAddress.add(arr);
그런 다음 호출해야하는 배열 값을 인쇄하려면 다음을 수행하십시오 Arrays.deepToString
.
for (int i = 0; i < houseAddress.size(); i++) {
System.out.println(Arrays.deepToString(houseAddress.get(i)));
}
public void printList(ArrayList<Address> list){
for(Address elem : list){
System.out.println(elem+" ");
}
}
때문에 자바 8 , 당신은 사용할 수 있습니다 대해 forEach () 에서 방법 의 Iterable 인터페이스를 제공합니다.
기본 방법입니다. 인수로서 기능적 인터페이스 Consumer 를 구현하는 클래스의 객체를 취합니다 . 당신은 세 가지 방법으로 로컬 소비자를 구현할 수 있습니다
으로 annonymous 클래스 :
houseAddress.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
람다 식 :
houseAddress.forEach(s -> System.out.println(s));
또는 메서드 참조 를 사용하여 :
houseAddress.forEach(System.out::print);
이 인쇄 방법은 Iterable 인터페이스의 모든 구현에서 작동합니다 .
이들 모두는 요소가 인쇄되는 방법을 정의하는 방법을 제공하는 반면 toString () 은 하나의 형식으로 목록을 인쇄하도록 강제합니다.
넣고 houseAddress.get(i)
괄호와 전화 내부 .toString()
기능 : 즉, 아래를 참조하십시오
for(int i = 0; i < houseAddress.size(); i++) {
System.out.print((houseAddress.get(i)).toString());
}
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()));
}
ArrayList를 인쇄하는 가장 간단한 방법은 toString을 사용하는 것입니다.
List<String> a=new ArrayList<>();
a.add("111");
a.add("112");
a.add("113");
System.out.println(a.toString());
[111, 112, 113]
반복자를 사용할 수 있습니다. 여기에서 할 수있는 가장 간단하고 논란이 적은 일입니다. Say houseAddress
에는 데이터 유형의 값이 있습니다.String
Iterator<String> iterator = houseAddress.iterator();
while (iterator.hasNext()) {
out.println(iterator.next());
}
참고 : 다른 답변에서 언급했듯이 향상된 for 루프를 사용할 수도 있습니다.
@Override public String toString ()을 주석으로 만들면 동일한 결과를 얻을 수 있습니다. 그러나 toString () 메서드를 구현하면 작동합니다.
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);
}
}
class Address {private int addr; 공개 주소 (int i) {addr = i; }
@Override public String toString()
{
Integer iAddr = new Integer (addr);
return iAddr.toString();
}
}
향상된 for 루프 또는 다음과 같은 반복기를 사용할 수도 있습니다.
for (String name : houseAddress) {
System.out.println(name);
}
데이터 유형 houseAddress
이 무엇이든 변경할 수 있으며 불필요한 변환을 피할 수 있습니다.
JSON
대체 솔루션은 목록을 JSON 형식 으로 변환 하고 Json-String을 인쇄하는 것입니다. 장점은 toString()
. 추가로 그것은 다른 Object
또는Collection
즉석에서 .
Google의 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);
}
콘솔에서 요소를 인쇄하려는 경우 인쇄 형식을 사용할 수 있습니다.
for(int i = 0; i < houseAddress.size(); i++) {
System.out.printf("%s", houseAddress.get(i));
}
즉 가정 houseAddress.get(i)
입니다 ArrayList
추가 할 수있는 toString()
애프터 ArrayList
:
for(int i = 0; i < houseAddress.size(); i++) {
System.out.print(houseAddress.get(i).toString());
}
일반적인 예 :
ArrayList<Double> a = new ArrayList();
a.add(2.);
a.add(32.);
System.out.println(a.toString());
// output
// [2.0, 32.0]
이것은 ArrayList에 값을 추가하고 ArrayList 값을 인쇄하는 간단한 코드입니다.
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);
}
}
}