자바

//특정 값 대입하며 배열 선언
int [] intArray = { 1, 2, 3, 4 };


//객체이므로 rateData에는 null이 대입된다.
double [] doubleArray;


//생성을 해준후에는 rateData에 주소가 들어가게 된다.
doubleArray = new double[10];


//Boolean 형태로 배열을 선언하고 초기화하는 예제
boolean [] verseList;
verseList = new boolean[totalVerse]; //기본값으로 초기화
Arrays.fill(verseList, false); //특정 값으로 초기화


배열의 길이
배열.length 


배열을 주소형태로 파라메터값으로 넘기기
C언에서는 파라메터로 배열 등의 포인터를 전달해줄 수 있다.
동일하게 자바에서도 파라메터로 주소값을 넘길 수 있다.

class  MainClass
{
	public static void main( String [] args )
	{
		....
		new MainClass().printScore( args );
	}
	
	public void printScore( String [] args )
	{
		......
	}
}




배열 정렬

import java.util.*;
....
	Arrays.sort( 배열명 );




클래스 배열 선언

//클래스 배열 3개 선언
Test [] test = new Test[3];
System.out.println( test[0] );  // 각 배열에는 아직 NULL값만 존재한다.
System.out.println( test );  // 그러나 여기에는 주소값이 들어가있다!!

test[0] = new Test(); //이제야 객체가 들어간다. NULL값 대신 주소값이 들어가있다.




2차원 배열 선언

int [] [] intArrays = new int [행][열];

intArrays // 여기에는 주소값이 들어있다.
intArrays[0] // 여기에도 주소값이 들어있다.
intArrays[0][0] // 여기에는 0이 들어간다.

intArrays.length // 행의 갯수를 리턴한다.
intArrays[0].length // 이때는 열의 갯수를 리턴한다.

//다차원 배열의 할당 선언
boolean [] [] booleanArrays = { {true, true}, {false, false, false}, ... };




새롭게 바뀐 배열의 반복문

for( 배열타입 임시변수이름 : 돌리고 싶은 배열 이름 )
{
	System.out.print( 임시변수이름 );
}

//실제 예
for( int i : intArray )
{
	System.out.print( i ); //배열의 각 값이 i에 담겨진다.
}




새롭게 바뀐 배열의 반복문의 2차원 배열 적용

for( String [] s : stringArrays ) // 행을 가져오기
	for( String t : s ) // 열을 가져오기
		System.out.print( t ); //2차원 배열의 각 값이 t에 담겨진다.





2차원 배열 선언에 대한 고찰
 

public class ArrayTest
{
	public static void main(String[] args)
	{
		/**
		 * 정상적인 2차원 배열 선언
		 */
		
		Object[][] Test = new Object[3][];
		
		System.out.println(Test.length);
		//현재 Test 배열의 크기이므로 3이 출력된다.
	
		for(int i=0; i<Test.length;i++)
		{
			Test[i] = new Object[3];
			
			Test[i][0] = i + " - 0";
			Test[i][1] = i + " - 1";
			Test[i][2] = i + " - 2";
		}
		
		for(int i=0; i<Test.length;i++)
		{
			System.out.print(Test[i][0] + "\t");
			System.out.print(Test[i][1] + "\t");
			System.out.println(Test[i][2]);
		}
		
		
		/**
		 * 비정상적인 2차원 배열 선언
		 */
		
		Object[] Test2 = new Object[3];
		
		System.out.println(Test2.length);
		//현재 Test 배열의 크기이므로 3이 출력된다.
	
		for(int i=0; i<Test2.length;i++)
		{
			Test2[i] = new Object[3];
			
			//아래 구문은 오류가 난다!!!!
			//즉 1차원 배열 안에 또다시 배열을 넣는 것은 불가능하다.
			
			Test2[i][0] = i + " - 0"; //오류!
			Test2[i][1] = i + " - 1"; //오류! 
			Test2[i][2] = i + " - 2"; //오류!
			
			//위의 정상적인 선언처럼 처음부터 2차원 배열로 선언후,
			//다시 그 안에 1차원 배열을 넣는 것이 정상적이다.

		}
	}
}

 

about author

PHRASE

Level 1  머나먼나라

댓글 ( 4)

댓글 남기기

작성