[개발] 자바에서 배열에 값을 출력하는 방법

in SteemCoinPan •  2 years ago 

출처 : https://www.freecodecamp.org/news/java-array-methods-how-to-print-an-array-in-java/

일반적인 배열의 값 출력

배열은 그들의 요소 값을 연속적인 메모리 위치에 저장하고 있습니다.

int[] intArray = {2,5,46,12,34};

System.out.println(intArray);
// 결과물 : [I@74a14482

그래서 위와 같이 출력 해보면 결과물로 해당 보여 줍니다.

좀 더 설명해 보면 println 으로 출력되는 것은 기본적으로 Object.toString() 메소드의 값을 출력 하는 것이고 구성을 살펴보면

getClass().getName()+‘@’+Integer.toHexString(hashCode())

좀 더 쉽게 이야기 해보면 대상 클래스 개체의 해쉬 코드값의 일부를 출력하는 것 입니다.

미리 보기

배열의 개체 요소 값 출력 방법

  1. 반복문 : for 또는 for-each 활용
  2. Arrays.toString()
  3. Arrays.deepToString()
  4. Arrays.asList()
  5. Java Iterator(반복자) interface(인터페이스)
  6. Java Stream(흐름,이어지는 연속적인) API

for / for-each

int[] intArray = {2,5,46,12,34};

for(int i=0; i<intArray.length; i++){
    System.out.print(intArray[i]);
    // 결과물 : 25461234
}

for(int i: intArray){
    System.out.print(i);
    // 결과물 : 25461234
}

Arrays.toString()

java.util 패키지에 포함된 기능 입니다. 1차원 배열의 값이 출력된 형태로 볼 수 있습니다.

int[] intArray = {2,5,46,12,34};
System.out.println(Arrays.toString(intArray));
// 결과물 : [2, 5, 46, 12, 34]

Arrays.deepToString()

1차원 이상의 배열은 Arrays.deepToString() 메소드를 사용하여 내부 값을 출력하도록 합니다.

// 다차원 배열 생성
int[][] multiDimensionalArr = { {2,3}, {5,9} };

System.out.println(Arrays.toString(multiDimensionalArr));
// 결과물 : [[I@74a14482, [I@1540e19d]

System.out.println(Arrays.deepToString(multiDimensionalArr));
// 결과물 : [[2, 3], [5, 9]]

참고로 1차원 배열 또한 Arrays.deepToString() 메소드를 사용해도 됩니다.

Integer[] oneDimensionalArr = {1,4,7};

System.out.println(Arrays.deepToString(oneDimensionalArr));
// 결과물 : [1, 4, 7]
``

# Arrays.asList()

> 이 메소드는 지정된 배열이 지원하는 고정 크기의 목록을 리턴합니다.

자바에서  Arrays.asList(intArray).toString() 를 호출 하는 것은,내부적으로 목록 내 요소 유형의 toString () 메소드를 사용합니다.

Teacher[] teacher = { new Teacher("John"), new Teacher("Mary") };

System.out.println(Arrays.asList(teacher));
// 결과물 : [Teacher{name='John'}, Teacher{name='Mary'}]


# 자바 반복자(Iterator) 인터페이스 

Integer[] intArray = {2,5,46,12,34};

// 정수 목록 생성
List< Integer > list = Arrays.asList(intArray);

// 정수 목록의 반복자를 생성
Iterator< Integer > it = list.iterator();

// List에 반복 할 요소가있는 경우
while(it.hasNext()) {
System.out.print(it.next());
// 결과물 : 25461234
}


# 자바  Stream API

> Stream API는 객체 컬렉션을 처리하는 데 사용됩니다. 스트림은 일련의 객체입니다. 스트림은 원래 데이터 구조를 변경하지 않으며 요청 된 작업에 따른 결과 만 제공합니다.

Integer[] intArray = {2,5,46,12,34};

Arrays.stream(intArray).forEach(System.out::print);
// 결과물 : 25461234


# 맺음말

저같은 경우에는 apache commons lang3  의 ToStringBuilder.reflectionToString() 메소드를 자주 사용하는데 위 내용을 참조하여 기본 패키지에서 뭔가 해보는 것도 좋을거 같다는 생각이 드네요 :) 

항상 기본기가 중요하죠 ㅋ

오늘도 누군가에게 도움이 되길 바랍니다.
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

@wonsama transfered 3 KRWP to @krwp.burn. voting percent : 9.03%, voting power : 78.25%, steem power : 1873349.64, STU KRW : 1200.
@wonsama staking status : 772.929 KRWP
@wonsama limit for KRWP voting service : 1.545 KRWP (rate : 0.002)
What you sent : 3 KRWP
Refund balance : 1.455 KRWP [45728187 - c934586d211dc19646cea23e61014d9fae27c4ff]

오늘도 누군가에게 도움이 되길 바랍니다.

다음부터 독거노인 제외... 문구도 좀 넣어주세요? ㅋㅋㅋ
비가 많이 오네요~ 항상 조심하시고, 즐거운 하루 되세요~

넵 ㅎㄹ