IT의 다이어리/JAVA

Java의 1차원 배열

류곤 2024. 11. 25. 19:59

오늘은 자바의 배열에 대해 작성해볼까 합니다 !

주말동안 푹 쉬셨나요 ? 전 주말동안 노느라 정신을 못차렸네요 ...

다시 월요일 한주 시작하는 겸 열심히 작성해볼게요 ~

 

  • 1차원 배열(선형 배열)

 

 

《배열》

하나의 이름으로 같은 자료형의 데이타를 여러개 저장할 수 있는 메모리 구조로

메모리가 연속적으로 생김으로 참조형 입니다.

 

 

배열선언이란?

 

int [] arrNum;//int arrNum
//arrNum =10;//[x]데이타 저장 불가함.

 

EX] arrNum이라는 배열명으로 int형의 배열을 선언하는것으로

arrNum이라는 이름으로 stack영역에 주소를 저장할 수 있는 메모리가 생깁니다.

 

 

 

 

메모리 할당이란?

실제 값을 저장할 수 있는 메모리를 heap영역에 생성하기 위해

new연산자 사용합니다.

 

※ new연산자는 실제 데이타를 저장할 메모리를 heap영역에 할당이라는 의미를 뜻합니다.

 

arrNum = new int[5]; // int[5]에서 5는 배열 크기인 즉 메모리의 갯수를 말한다.

 

여기서 배열명[숫자]는 배열요소명이라고 하며, [숫자]는 배열 인덱스라고 합니다.

배열에서 인덱스는 항상 0부터 시작하며 배열요소명은 변수처럼 사용할수 있습니다

 

예제를 보면 ?

 

arrNum = new int[5];//값을 할당하기 전
for(int i=0;i<5;i++){
	System.out.printf("arrNum[%d] : %d%n",i,arrNum[i]);
  }
  
//출력값
arrNum[0] : 0
arrNum[1] : 0
arrNum[2] : 0
arrNum[3] : 0
arrNum[4] : 0
/////////////////////////////////////////////////////////

arrNum[0] : 10 //배열 초기화]메모리 생성후 값 최초로 할당함
arrNum[1] : 20
arrNum[2] : 30
arrNum[3] : 40
arrNum[4] : 50
//값을 할당하기 후
for(int i=0;i<5;i++){
	System.out.printf("arrNum[%d] : %d%n",i,arrNum[i]);
  }
  
//출력값
arrNum[0] : 10
arrNum[1] : 20
arrNum[2] : 30
arrNum[3] : 40
arrNum[4] : 50

 

 

이렇게 메모리 생성후 값을 할당해서 하는 방법도 있습니다 !

저는 배우기도 하며 복습차원이니 다른 방법도 보여드리겠습니다 !

 

//배열의 크기 = 배열명.length
for(int i=0; i < arrNum.length;i++){
	if(i==arrNum.length-1) //배열에서 마지막 요소의 인덱스는 항상(길이 -1)입니다
		System.out.printf("arrNum[%d] : %d",i,arrNum[i]);
	else
		System.out.printf("arrNum[%d] : %d,",i,arrNum[i]);
 	}      
 
 
 //출력값
arrNum[0] : 10,arrNum[1] : 20,arrNum[2] : 30,arrNum[3] : 40,arrNum[4] : 50

 

length를 이용해 배열의 크기를 바로 알수 있음으로

간단하게 나타낼수 있습니다.

 

《string형 배열과 boolean형 배열》

 

String strArray[] = new String[2];
System.out.println("\r\n"+strArray);
//출력값은 strArray의 주소값이 나온다.

////////////////////////////////////////////////

String strArray[] = new String[2];//배열 선언과 동시에 메모리 할당
strArray[1] = "민국";
strArray[0] = "대한";
for(int i=0;i<strArray.length;i++){//순서 배열
	System.out.printf("strArray[%d] : %s%n",i,strArray[i]);
  }
//출력값
strArray[0] = "대한";
strArray[1] = "민국";

for(int i=0;i < strArray.length;i++) {
	System.out.printf("%-"+(strArray[i].length()+1)+"s",strArray[i]);//+1은 공백을 위해 더해줌		
  }
//출력값
대한 민국

 

String형 배열은 이렇게 복습

 

//{} 배열 초기화자만 사용
//boolean[] blArr = {true, 3>2, 3>2 && 5<3, false};//{}를 배열 초기화자라고 함

boolean[] blArr;//boolean형 배열 선언
boolean[] blArr = {true, 3>2, 3>2 && 5<3, false}
for(int i=0;i < blArr.length;i++) {
	System.out.printf("blArr[%d]:%b%n",i,blArr[i]);
  }

 

boolean형 배열은 이런식으로 복습차원으로 적어봤습니다 

오늘도 문제를 드릴까 하는데 블로그에 들리신분들은 풀어보세용 🫡🫡🫡

 

//문]일차원 배열을 크기 순서대로 재 배치후 출력하자.(내림차순으로)
int [] num = {100,90,65,45,1999,68,923,36,12,100000}

 

오늘의 복습 여기까지 하고

 저는 내일 2차원 배열로 또 쓰러 올게요 ~~~

'IT의 다이어리 > JAVA' 카테고리의 다른 글

Java의 2차원 배열  (0) 2024.11.27
Java의 Switch문과 while문  (0) 2024.11.22
Java의 IF else문과 For문  (1) 2024.11.20
JAVA의 할당연산자와 IF문 조건식  (0) 2024.11.19
Java의 Escape 문자& 연산자  (3) 2024.11.18