개발자(프로그래밍!!!)/Java

4. Java (배열)

건강전파사 2019. 3. 30. 17:24
반응형
SMALL

1 . 배열 : 같은 타입의 변수들의 모임

1) 변수 선언

  ① 선언

  1_ int[] array = new int [선언할 배열의 수(array의 index)]

    변수 타입 = * array는 참조변수(주소값 담고 있는 변수)

      * 힙 영역에 연속된 변수의 set이들어감, 배열의 시작은 무조건 0번 부터 시작이 됨.

   2_ int[] array = { a,b,c,d }

2) 동적 vs 정적

- 동적 : 프로그램이 실행되는 중에 생성되는 것

- 정적 : 컴파일을 하면서 부터 생성이 되있는것

 

3) final : 상수를 나타내며 final로 선언을 했을 때 값은 변하지 않는다. 

 -> final :  하나의 객체 안에서 국한됨.

 -> final static : 어떤 객체에서도 나는 하나의 객체입니다. (ex ) 원주율 )

      배열.length : 선언한 배열을 끝까지 읽어 올때 많이 쓴다.

 

4) for -each //전체를 읽어올때 많이 쓴다.!!

or(int value : numbers)

해당 배열과 같은 타입의 변수, 뽑아올 대상 배열

 

ㅁ 이것은 알아놓자!!

1_일반 변수 선언과 배열의 차이는 일반 변수는 메모리상에 변수가 저장되는 위치가 일정하지 않지만

    배열을 선언하게 되면 선언한 공간만큼 메모리상에 잡아 놓기 때문에 속도의 차이가 있다.

2_ 그리고 위에서 선언된 array

3_배열안의 선언된 배열을 읽어 줄때에는 선언된 변수의 idex라 읽음 ex) array[2] -> array의 index 2라 읽음

 

2. 배열의 응용 : 정렬

1) 선택정렬 : 주어진 리스트 중에서 최소값을 선정하여 왼쪽에서 부터 정렬하는 정렬

	int[] arr = {5,7,8,2,6};
		
		int value1;   // 값
		int pos;      // 위치 표시
		
		for(int j = 0 ; j < arr.length; j++) { // 배열의 길이까지 반복을 실행함
			value1 =arr[j];  //배열의 값을 저장
			pos = j; // 변경된 위치를 표시함
			for(int i = j; i < arr.length; i++) { // 순차적으로 배열의 반복을 실행하면서 변경된 위치를 초기값으로 잡고 반복 실행 
				if(value1 > arr[i]) {  // 기준점 이후를 비교하여 값이 크면
					value1 = arr[i];   // 그 값을 value 값에 다가 저장을 한다 .
					pos = i;           // 위치를 변경한다.
				}
			}
			int tmp  = arr[pos];    // 변경할 위치의 값을 임시 변수에 저장
			arr[pos] = arr[j];      // 변경할 값을 대입
			arr[j] = tmp;           // 변경완료

		
		} for(int x : arr)			// arr 배열의 값을 모두 읽어온다.
			System.out.print(x);

 

2) 버블정렬 : 두 인접한 원소를 검사하여 정렬하는 방법

		int[] arr = {5,7,8,2,6,4,3,9}; // 정리할 배열의 예제
				
		for(int j=0; j < arr.length; j++) { // 배열의 끝자리 까지  반복을 진행함.

			for(int i=0; i < arr.length-1; i++) { // 배열의 끝자리 전까지 만 반복을 실행함.
				if(arr[i] > arr[i+1]) {     // 배열의 앞뒤를 비교하여  정렬 실행 
					int tmp = arr[i];
					arr[i] = arr[i+1];
					arr[i+1] = tmp;
				}	
			}
		}for(int value : arr)   // 모든 값을 출력
			System.out.print(value);

 

 

반응형
LIST