일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- venv
- github
- synology
- requests
- portfolio
- Crawling
- openapi
- Project
- javascript
- beautifulsoup
- NAS
- frontend
- mysql
- pymongo
- java
- atlas
- CSS
- flaskframework
- json
- CRUD
- POST
- fetch
- Algorithm
- backend
- PYTHON
- OOP
- get
- body
- mongodb
- flask
Archives
- Today
- Total
wisePocket
[JAVA] 기초문법 - 1차원 배열(Array) 생성과 초기화, 조회, 복사, Arrays 클래스 메서드 활용 - 19 본문
Java & Algorithm/Java
[JAVA] 기초문법 - 1차원 배열(Array) 생성과 초기화, 조회, 복사, Arrays 클래스 메서드 활용 - 19
ohnyong 2023. 7. 26. 23:27Array 란?
참조형 변수 중 하나, 배열(Array)은 앞으로 아주 많이 사용 될 컨테이너 객체이다.
참조형 변수의 특징인 주소값을 저장하며 주소값은 값을 바라보고 있는 특징을 가지고 있다.
배열은 하나의 객체안에 여러 데이터들을 모아 저장할 수 있어 데이터를 구조적, 효율적으로 다룰 수 있다.
배열을 구성하는 값을 배열 요소(element)라고 부르며 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 부른다.
배열 생성
기본적인 배열 생성 방법, 배열의 크기(length)를 지정 할 수 있다.
int[] intArray = new int[3]; //정수형 배열 초기값 0 => {0,0,0} boolean[] booleanArray = new boolean[3]; //논리형 배열 초기값 false => {false, false, false} String[] stringArray = new String[3]; //문자형 배열 초기값 null => {"", "", ""}
배열 선언-이후 초기화 방식 생성 방법
int[] intArray2; intArray2 = new int[3]; //{0,0,0}
배열 조회
단건 조회
int[] intArray = new int[3]; //정수형 배열 초기값 0 => {0,0,0} System.out.println(intArray[0]); //index 0,1,2 처럼 접근
다수 조회1 기본 for문
for (int i = 0; i < intArray2.length; i++) { System.out.println(intArray2[i]); //i => index로 대입되니까 }
다수 조회2 확장 for문
for (int item: intArr){ System.out.println(item);
배열 초기화
선언 시 직접 특정 값을 대입해서 할당
int[] intArr = {1,2,3,4,5}; String[] stringArr = {"a", "b", "c", "d"};
for문을 통한 대입 할당
for(int i=0;i<intArr.length;i++){ intArr[i] = i;// i를 왼쪽 intArr에 대입한다(대입연산) == 넣는다, 담는다. }
배열의 복사
얕은 복사(Shallow Copy)
b[]는 a[]배열 자체를 할당 했기 때문에
a[]와 b[]의 각 주소값이 같은 값(element)를 바라보고 있다.
둘 중 하나 엘리먼트를 1개만 변경해도 다른 하나도 함께 변경 된다.
public static void main(String[] args) { int[] a = {1, 2, 3, 4}; int[] b = a; // 얕은 복사(Shallow Copy) System.out.println(b[0]); b[0] = 4; System.out.println(b[0]); System.out.println(a[0]);
깊은 복사(Deep Copy)
위 처럼 얕은 복사를 의도하지 않은 것이며 객체 자체를 클론하는 것이 목적이라면
Arrays 클래스의 메서드인 copyOf 메서드를 활용하여 복사해야 한다.
a[]를 통해 새로운 배열 객체 b[]를 생성해야 한다.
각각 주소값이 각자의 값을 바라보고 있기 때문에
둘 중 한 배열의 element를 변경 하더라도 다른 배열에 영향을 주지 않는다.
int[] a = {1, 2, 3, 4}; int[] b = Arrays.copyOf(a, a.length); // 깊은 복사(Deep Copy) System.out.println(b[0]); b[0] = 4; System.out.println(b[0]); System.out.println(a[0]);
Arrays 클래스의 메서드 사용해보기
Arrays.fill : 배열의 주소를 모두 같은 값으로 초기화 시킴
Arrays.fill(intArr, 1);
그 외 Arrays 클래스의 메서드 기능을 이용하려면 공식 문서에서 찾을 수 있다.
https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#method.detail
'Java & Algorithm > Java' 카테고리의 다른 글
[JAVA] 기초문법 - 자료구조 컬렉션 ArrayList 생성과 메서드 기능 이용 연습 - 21 (0) | 2023.07.27 |
---|---|
[JAVA] 기초문법 - 다차원 배열(Multidimensional Array) 생성과 초기화, 조회, 최대값, 최소값 연습 - 20 (0) | 2023.07.27 |
[JAVA] 기초문법 - 메서드(Method)와 함수(Function) 용어 구분하기 - 18 (0) | 2023.07.26 |
[JAVA] 기초문법 - 제어문(Control Flow Statements) - 구구단 만들기 반복문 연습 - 17 (0) | 2023.07.26 |
[JAVA] 기초문법 - 제어문(Control Flow Statements) - break / continue - 16 (0) | 2023.07.26 |