본문 바로가기

코딩/JAVA 공부

[JAVA] 자바의 정석 _ 배열

 * 배열의 선언과 생성

타입[]  변수 이름; // 참조 변수 선언

변수 이름 = new 타입[길이]; // 배열 생성

int[] score; // int타입 배열 다루기 위한 참조변수 score선언
score = new int[5] // int 타입 값 5개를 저장할 수 있는 배열 생성

int[] score = new int[5] // 배열의 선언, 생성 동시에

배열의 인덱스는 파이썬과 동일하다.

 

 * 배열의 길이

배열 이름. length - 배열의 길이 int형 상수로 리턴.

(배열은 한번 생성하면 그 길이를 바꿀 수 없다.)

 

 * 배열의 초기화

배열의 각 요소에 처음으로 값을 저장하는 것

int[] score = {10, 20, 30, 40, 50};

 * 배열의 출력

char[] 인 경우는 바로 출력 가능 (println의 기능)

다른 배열은 for문을 통해 출력 필요

for(int i = 0; i < score.length; i++){
    System.out.println(score[i])
}

Arrays 클래스를 통해 좀 더 편하게 출력 가능

문자열로 바꿔서 출력.

System.out.println(Arrays.toString(score));

다양한 예시

import java.util.Arrays;
public class up {
	public static void main(String[] args) {
	char[] ch = {'a', 'b', 'c'};
	System.out.println(ch);					 // abc
	System.out.println(Arrays.toString(ch)); // [a, b, c]
    
	String[] st = {"asd", "sdsd", "geg"};
	System.out.println(st);					 // [Ljava.lang.String;@2a139a55
	System.out.println(Arrays.toString(st)); // [asd, sdsd, geg]
    
	int[] in = {1,2,3,4,5,6,7};
	System.out.println(in);					 // [I@15db9742
	System.out.println(Arrays.toString(in)); // [1, 2, 3, 4, 5, 6, 7]
	} // main 끝
} // class 끝

 

 * String 배열

String[] name = new String[3];

String은 참조형으로, 기본값이 null임. 초기 값 입력 전엔 배열에 다 null이 들어가 있음.

String 배열은 만든 배열에 값이 직접 입력되는 게 아니라, 값의 주소가 배열에 저장됨.

String[] name = {"Kim", "Park", "Yi"}

배열 name의 선언, 생성 구조

 * 2차원 배열

int[][] score = new int[4][3];

int[][] arr = {
		{1,2,3},
		{4,5,6}
		};

 

* String 클래스

1. String 클래스 = char[] + 매서드(기능)

2. String 클래스는 내용을 변경할 수 없다. (read only)

String 클래스는 내용 변경이 아니라, 변경이 필요하면 새로운 메모리를 사용하고 주소 값이 바뀜.

String a = "a";
String b = "b";
a = a+b

3. String 클래스의 주요 메서드

문자열 인덱스로 접근하기 : charAt()

문자열 길이 : length()

문자열의 인덱스 범위 접근 : substring(from, to) 

문자열 내용 동일 확인 : equals(Object)

문자 배열로 변환 : toCharArray()

public class Arrays {
	public static void main(String[] args) {
    
	String str = "ABCD";

	char ch = str.charAt(3);			// D
	int le = str.length();		 		// 4
	String str2 = str.substring(0,3);	// ABC
	boolean eq = str.equals("ABD");		// false
	char[] ch2 = str.toCharArray();		// ABCD
	}// main 끝
}// class 끝

 

*Arrays 클래스

배열의 비교와 출력 - equals(), deepEquals(),  toString(), deepToString()

배열의 복사 - copyOf(), copyOfRange()

배열의 정렬 - sort()

import java.util.Arrays;
public class Arraysc {
	public static void main(String[] args) {
	int[] arr = {0,1,2,3,4,5};
	    
	int[] arr2 = Arrays.copyOf(arr, 3);		// [0, 1, 2]
	int[] arr3 = Arrays.copyOfRange(arr,2,4);	// [2, 3]
	int[] arr4 = Arrays.copyOfRange(arr,0,8);	// [0, 1, 2, 3, 4, 5, 0, 0]
    
    	int[] arrr = {3,2,0,1,4};
   	Arrays.sort(arrr); 				//{0,1,2,3,4}
    
	}// main 끝
}// class 끝