JAVA Programming

[24] 배열이란 ? (2)

꾸준히개발하자 2020. 7. 14. 16:18

배열이란 ?

배열객체를 사용할때는 ArrayList 를 사용한다.

동일한 자료형의 순차적 자료 구조

 

 

배열 선언하기

Int[] arr = new int[10]; //  [ ] 몇 개의 공간을 쓸것인가 그만큼 방이 생긴다.

학생 100명이 있다면 변수100개를 만든다는 것은 불합리 하다. 동일한 자료를 순차적으로 관리하는 기본적인 자료구조가 배열이다.  

인트 4바이트가 10개 배열길이(length)를 가진다. 40바이트

시작하는 첫칸은 0번째 라고 부른다.

 

Int[] arr = new int[5];  20바이트가 잡힌다.

 

 

배열의 길이는 length 라고 부른다.  Length 5라고 부르면 인덱스는 0부터 4까지를 가지게된다.    0부터 length-1 까지 가진다.

 

물리적 위치(위치가다른) 랑 논리적 위치(순서대로) 가 다른 LinkedList 가 있다.

포인터로 next에 대한 값을 가지게 된다.

연결되서

 배열은 크게만들고 이 요소들을 복사해가지고 또다른 배열을 사용한다. 연속된 자료구조 이다.

배열의 요소중 삭제하면 왼쪽으로 하나씩 채워진다.  중간에 끼어놓고 싶으면 2부터 엘리먼트를 뒤로 미룬다. 물리적으로 연결되어 있어서 index 연산자 배열의 몇번째

arr[1] 계산하기 쉽다.  배열의 이름이 주소를 가지고 있기 때문에 이 첨자만큼의 옵셋 계산하면 그 배열의 인덱스의 위치의 값을 꺼내올수있다.

나중 ArrayList 를 쓰는데 데이터를 카피 , 중간에 넣을 때 데이터를 떙기거나 미룰 때 이미 구현이 되어있어서 이런것에 대한 연산자고민을 하지않고 사용할수있다.

LinkedList는 필요할때마다 추가한다.

 

package array;

import javax.swing.plaf.synth.SynthSeparatorUI;

public class ArrayTest {
	
	public static void main(String[] args) {
		/*
		int[] arr = new int[10]; // 0 ~ 9 
		int[] arr2 = new int[] {1,2,3}; // 생성과 동시에 초기화 , 넣은 수만큼 만들어진다. 
		int[] arr3 = {1,2,3}; // 선언과 동시에 초기화 
		int[] arr4;
		arr= new int[]{1,2,3}; 
		*/
		
		// 1부터 10까지 배열에 넣고 합을 출력 해보기
			int[] arr5 = new int[10];
			int sum = 0;
		for(int i=0 , num = 1; i < arr5.length; i++ , num++) { // lenth의 길이가 변한다고 해도 속성의 값을 가져올수있다. 
			arr5[i] = num;
		}
		for(int i = 0; i < arr5.length; i++) {
			  sum += arr5[i];
		}
		System.out.println(sum);
		
		double[] dArr = new double[5]; // 5개의 공간에 3개만 넣으면 나머지 값은 0이 들어간다. 이때에는 count를 줘서
		int count = 0;
		dArr[0] = 1.1; count++;  // 넣은 수만큼만 돌리기 
		dArr[1] = 2.1; count++;
		dArr[2] = 3.1; count++; 
		
		double sum2 = 1;
		for(int i = 0 ; i < count; i++) { // 배열의 길이만큼만 아닌  count 증가한수만큼 증가시킨다. 
			sum2 *= dArr[i];
		}
		System.out.println(sum2);
	}
}