-
Java | Array 배열JAVA/JAVA 2020. 1. 28. 22:30
Array 배열
같은 타입(자료형)의 여러 변수를 하나의 대표적인 변수로 묶어주는 것
↔ 클래스: 다른 타입의 여러 변수를 하나의 대표적인 변수로 묶어주는 것(C 언어에서의 구조체) + 메소드
배열 특성
- 많은 양의 데이터를 다룰 때 유용함
↔ 변수의 양이 많아지면 관리하기가 어려움 - 배열의 각 요소는 서로 연속적임
0부터 시작하는 인덱스번호로 구분 - 변수가 메모리에 연속적으로 저장되기 때문에 처리속도가 향상됨
↔ 기본적으로 변수는 메모리에 무작위로 할당됨 - 참조형(=객체형, 클래스형) 자료형임
참조형 자료형에는 Class, Array, Interface 등이 포함됨 - 자동 초기화
일반 변수는 반드시 값을 초기화해야 하지만, 배열은 자동으로 초기값이 설정됨
int → 0, double → 0.0, float → 0.0f, boolean → false
배열 종류
- 고정 배열: 크기가 처음부터 정해져 있는 배열
배열의 크기를 늘이거나 줄일 수 없음, 기본적인 배열 - 가변 배열(동적 배열): 크기가 입력받은 데이터의 양에 따라 늘어나거나 줄어들 수 있음
→ ArrayList 컬렉션
차원에 따른 배열 종류
- 1차원 배열 : 데이터가 선처럼 일렬로 연속적으로 저장되어 있는 배열
- 2차원 배열 : 데이터가 표와 같이 면으로 저장되어 있는 배열
배열의 요소가 배열인 경우 - 3차원 배열 : 데이터가 정육면체처럼 입체적으로 저장되어 있는 배열
배열의 요소가 배열이고 그 배열의 요소가 배열인 경우
※ 2차원 배열까지는 사용할 수 있어야 함
형식
자료형 배열명[] = new 자료형[개수]; // 자료형[] 배열명 으로도 작성 가능 // 배열을 생성하면서 값 초기화 자료형[] 배열명 = {값1, 값2, 값3,,,,};
기본 구조
public class ArgTest { // args라는 이름의 String형 배열이 매개변수로 main()메소드에 전달됨 public static void main(String[] args) { // 배열 생성 int[] suArray = new int[4]; // 배열 값 저장 suArray[0] = 1; suArray[1] = 2; suArray[2] = 3; // 배열 값 출력 System.out.println(suArray[0]); // 1 System.out.println(suArray[1]); // 2 System.out.println(suArray[2]); // 3 // 자동 초기화로 인해서 0이 저장되어 있음 System.out.println(suArray[3]); // 0 // 배열도 객체이기 때문에 주소값이 출력됨 System.out.println(suArray); // [I@15db9742 } }
가변 배열_Eclipse 활용
Eclipse의 변수 설정을 사용해서 배열의 크기를 조정
상단 메뉴 Run → Run Configurations → Java Application에서 클래스 선택
→ Aruguments 탭 → Program aruguments에 변수 입력변수 입력 형식: 변수1 변수2 변수3
→ 각각의 변수를 띄어쓰기로 구분함설정한 변수는 main()메소드에 매개변수로 전달됨
public class ArgTest4 { // String 배열 x를 매개변수로 main()에 전달, 변수: 1 2 3 public static void main(String[] x) { // 합계를 구할 변수 int sum; // 배열 x의 요소들을 각각 str1 ~ str3 변수에 저장 String str1 = x[0]; String str2 = x[1]; String str3 = x[2]; // 각각의 변수에 저장된 값 출력 System.out.println("str1: " + str1); // str1: 1 System.out.println("str2: " + str2); // str2: 2 System.out.println("str3: " + str3); // str3: 3 // String은 int로 강제 형변환 할 수 없기 때문에 integer.parseInt() 메소드 사용 int int1 = Integer.parseInt(str1); int int2 = Integer.parseInt(str2); int int3 = Integer.parseInt(str3); // int로 변경한 값들을 sum에 더함 sum = int1 + int2 + int3; // sum 출력 System.out.println("합계: " + sum); // 합계: 6 } }
Integer.parseInt() & Integer.toString()
Integer 클래스에 내장되어 있는 메소드 parseInt()는 매개변수로 주어진 String 형태의 숫자를 int로 반환,
toString() 메소드는 매개변수로 주어진 int 형의 숫자를 String으로 반환public class CheckType { // 생성자 함수를 이용해서 자료형 확인, 자료형에 따른 문구가 출력되도록 함 CheckType(String a){ System.out.println(a + "의 자료형은 String입니다!"); } CheckType(int b){ System.out.println(b + "의 자료형은 Int입니다!"); } public static void main(String[] x) { // int형 숫자를 String형 문자열로 형변환 int fromInt = 10; String toString = Integer.toString(fromInt); CheckType ct1 = new CheckType(toString); // 10의 자료형은 String입니다! // String형 문자열을 int형 숫자로 형변환 String fromString = "20"; int toInt = Integer.parseInt(fromString); CheckType ct2 = new CheckType(toInt); // 20의 자료형은 Int입니다! } }
※ Java에는 JavaScript에서의 typeof 같은 메소드가 없기 때문에 생성자를 이용해서 자료형을 확인해 볼 수 있음
배열에 대해 살펴보았습니다.
배열은 같은 자료형의 여러 데이터를 다룰 때 아주 효율적으로 사용될 수 있습니다.
따라서 배열의 기본 활용을 익혀두는 것은 큰 도움이 될 것입니다.
또한 Integer 클래스의 parseInt(), toString()과 같은 메소드들은
int와 String간 형변환을 할 때 유용하게 사용할 수 있겠습니다.
'JAVA > JAVA' 카테고리의 다른 글
Java | Scanner (0) 2020.01.28 Java | Array 배열 활용, 확장 for문 (0) 2020.01.28 Java | Static 정적 변수 & 정적 메소드 (0) 2020.01.28 Java | Java 메모리 구조 (0) 2020.01.28 Java | This (0) 2020.01.22 - 많은 양의 데이터를 다룰 때 유용함