일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 고잉버스
- 자바
- 리눅스마스터1급
- 카카오
- 스프링 컨테이너
- 스프링 빈
- Kotlin
- 반복문
- 월간코드챌린지
- map
- 코딩테스트
- 자바스크립트 코딩의 기술
- toCharArray
- 명령어
- 백준 javascript
- 문자열
- Memoir
- GoingBus
- 연습문제
- Linux
- 리눅스마스터 1급 정리
- 프로그래머스
- 리눅스
- 개발자 회고록
- 코테
- Java
- 리눅스마스터 3과목
- java 백준 1차원 배열
- 백준 java
- JavaScript
- Today
- Total
hoon's bLog
Java Array 자바 배열 사용 및 문법 본문
안녕하세요!
이번 포스팅에서는 "배열"!
배열에 대해서 한번 알아보도록 하겠습니다.
배열(Array)이란?
배열(Array) : 같은 타입의 여러 변수를 연속된 메모리 공간으로 이루어진 자료구조
여기서 중요한 것은 같은 타입이어야 한다는 것!!!(서로 다른 타입은 안됩니다!!)
꼭 기억해주시기 바랍니다!
보통 배열 생성하면서 그 안에 들어갈 데이터 자료형이 달라 에러가 나는 경우가 간혹 있으니,
주의하셔야 합니다!
그렇다면 배열은 어떻게 선언하고 생성을 할까요?
선언 방법 | 선언 예 |
타입[] 변수이름; | int[] test; String[] name; |
타입 변수이름[]; | int test[]; String name[]; |
대괄호는 보통 변수 이름보다 타입 뒤에 붙이는 경우가 많다!(코드의 획일화를 위해 상황에 따라 맞춰줄 것!)
자, 이렇게 배열이 선언이 되고 난 후에는, 배열을 생성해야 한다.
배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조 변수를 위한 공간을 만든 것이고,
배열을 생성해야 값을 저장할 수 있는 공간이 만들어진다!
int[] test; //int형 참조변수 test 선언
test = new test[5]; //int타입의 값 5개를 저장할 수 있는 배열 생성
int[] test; 를 통해 참조 변수가 선언됩니다.
아직 데이터를 저장할 수 있는 공간은 마련되지 않은 상태죠.
new test[5]; 를 통해 비로소, 메모리의 빈 공간에 5개의 int형 데이터를 저장할 수 있는 공간이 생깁니다.
그리고 각 배열의 요소는 기본값 0으로 초기화됩니다.
이때 배열 요소의 시작은 항상 0번째! 입니다!!!
따라서 위 배열의 요소는 test[0], test[1], test[2], test[3], test[4]가 되고,
이렇게 배열의 요소의 붙여진 일련번호를 인덱스(index)라고 합니다!
끝으로 '=' 연산자를 통해 배열의 주소가 참조 변수 test에 저장됩니다.
엇, 그러면 배열의 선언과 생성은 항상 따로 해야 하나요??
그래서 보통 배열의 선언과 생성을 동시에 하기 위해 이렇게 한 줄로 씁니다!!!
//타입[] 변수명 = new 타입[길이];
int[] test = new int[5];
이번엔 배열에 값을 저장하는 방법에 대해서 알아볼까요?
test[0] = 1;
test[1] = 2;
test[2] = 3;
test[3] = 4;
test[4] = 5;
위와 같이 선언한 배열의 크기에 맞게, 해당 인덱스까지 저장이 가능합니다.
그러면 이러한 저장한 값을 꺼내서 쓰려면?
int value = test[2];
// test의 2번째 인덱스에 해당하는 값 3을 꺼내서 int형 변수 value에 저장!
System.out.println(test[1]);
// test의 1번째 인덱스에 해당하는 값 2를 꺼내서 출력!
아주 쉽죠?
이번엔 기본값이 0이 아닌 값으로 초기화시키려면?
int[] test = new int[]{1,2,3,4,5};
//int 값을 5개저장 할 수 있는 배열이며, 해당 배열에는 1,2,3,4,5가 순서대로 저장되게 된다.
이번엔 예제를 통해 배열을 사용하는 방법을 알아보겠습니다.
우선 System.arraycopy()를 이용한 배열의 복사입니다.
for문 대신 System.arraycopy()를 사용하면, 간단하고 빠르게 배열 복사가 가능합니다.
for(int i=0; i < src.length; i++;) { dest[i] = src[i]; }
↓
↓
System.arraycopy(src, 0, dest, 0, src.length);
//src[0]에서 dest[0]으로 src.length개 데이터 복사
예제를 통해서 arraycopy에 대해서 알아보죠!
public class ArrayExam {
public static void main(String[] args) {
char[] abc = {'a', 'b', 'c'};
char[] num = {'0', '1', '2', '3', '4'};
System.out.println(abc); //abc
System.out.println(num); //01234
//배열 abc의 길이와 num의 길이를 합친 크기(8)만큼 배열 rst 생성
char[] rst = new char[abc.length + num.length];
System.arraycopy(abc, 0, rst, 0, abc.length); //rst[0]~rst[2] : abc
System.arraycopy(num, 0, rst, abc.length, num.length); //rst[3]~rst[8] : 01234
System.out.println(rst); //abc01234
System.arraycopy(abc, 0, num, 0, abc.length); //num[0]~num[2] : abc
System.out.println(num); //abc34
System.arraycopy(abc, 0, num, 1, 3); //num[1]~num[3] : abc
System.out.println(num); //aabc4
}
}
실행결과
100번 눈으로 보는 것보다 코딩으로 실제로 해보시면 이해가 더 빠르실 거예요!
오늘은 int형 배열에 대해서 알아봤습니다.
다음 포스팅엔 string 배열에 대해서 알아보도록 하겠습니다.
오늘도 읽어주신 여러분 감사합니다.:)
출처 : 자바의 정석 3rd Edition 내용 정리
'IT > Java' 카테고리의 다른 글
Java List, Set, Map 컬렉션프레임워크(Collection Framework) (0) | 2021.01.05 |
---|---|
Java String Array 배열 (0) | 2021.01.05 |
Java new instance this 생성자 (0) | 2021.01.05 |
Java private extends abstract 캡슐화, 추상클래스 (0) | 2021.01.05 |
Java class object 클래스와 객체 객체지향프로그래밍 OOP (0) | 2021.01.05 |