1. 배열 복사: copyOf() / copyOfRange()

int[] a = {1, 2, 3, 4, 5, 6, 7};
int[] b = Arrays.copyOf(a, a.length)
	   // copyOf(원본 배열, 복사할 길이)
       // b = {1, 2, 3, 4, 5, 6, 7}
       
int[] c = Arrays.copyOfRange(a, 1, 4);
	   // copyOfRange(원본 배열, 시작 인덱스, 끝 인덱스) : 끝 인덱스는 포함하지 않음
       // c = {2, 3, 4}

 

2. 배열 항목 비교: equals() / deepEquals()

int[][] a = { {1, 2}, {3, 4} };

// 얕은 복사
int[][] b = Arrays.copyOf(a, a.length);

System.out.println(a.equals(b)); // false
System.out.println(Arrays.equals(a, b) // true
System.out.println(Arrays.deepEquals(a, b) // true

// 깊은 복사
int[][] c = Arrays.copyOf(a, a.length);
c[0] = Arrays.copyOf(a[0], a[0].length);
c[1] = Arrays.copyOf(a[1], a[1].length);

System.out.println(a.equals(c)) // false
System.out.println(Arrays.equals(a, c) // false
System.out.println(Arrays.deepEquals(a, c) // true

 

3. 배열 항목 정렬: sort() (오름차순 정렬)

int[] a = {1, 4, 2, 5, 6, 3, 7};
Arrays.sort(a);
// a = {1, 2, 3, 4, 5, 6, 7};
사용자 정의 클래스일 경우 클래스가 Comparable 인터페이스를 구현하고 있어야 함
오름차순일 때 자신이 매개값 보다 낮으면 음수, 같을 경우 0, 높을 경우 양수를 리턴
public class IPhone implements Comparable<IPhone> {
	String modelName;
	IPhone (String modelName) {
		this.modelName = modelName;
	}

	@Override
	public int compareTo(iPhone i) {
		return modelName.compareTo(i.modelName);
	}
}

 

4. 배열 요소 검색: binarySearch()

반드시 sort() 등의 메소드를 이용하여 정렬을 해 놓은 상태여야 한다.
없는 항목을 찾으려고 하면 음수값을 리턴한다.
int[] a = {1, 2, 3, 4., ... , 100};

System.out.println(Arrays.binarySearch(a, 85);
					// binarySearch(원본 배열, 찾을 값);
                    // 출력: 84

 

5. 배열 초기화: fill()

int[] a = new int[5];

Arrays.fill(a, 1);
// a = {1, 1, 1, 1, 1}

Arrays.fill(a, 1, 3, 2);
// fill(원본 배열, 시작 인덱스, 끝 인덱스, 값)
// a = {1, 2, 2, 1, 1};

 

 

'JAVA' 카테고리의 다른 글

#2. ArrayList  (0) 2021.08.31
#1. 정규식  (0) 2021.08.30

1. ArrayList란?

  • List 인터페이스를 상속받은 클래스로, 크기를 조정할 수 있는 배열이다.
  • 객체들이 추가되어 저장 용량을 초과한다면 자동으로 부족한 크기만큼 저장 용량이 늘어난다는 특징이 있다.
  • 즉, 크기가 가변적으로 변하는 배열이다.

 


 

2. ArrayList 생성

  • ArrayList를 생성하기 위해서는 먼저 ArrayList 클래스를 import 해야 한다.
import java.util.ArrayList;
  • 다음의 구문들로 ArrayList를 생성한다.
ArrayList<Integer> al1 = new ArrayList<Integer>();	// 타입 지정은 반드시 wrapper 클래스로
ArrayList<Integer> al2 = new ArrayList<>();			// 뒤의 <> 내부는 생략 가능
ArrayList<Integer> al3 = new ArrayList<>(5);			// 초기 용량 설정
ArrayList<Integer> al4 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
// import java.util.Arrays한 후
// al4 = [1, 2, 3, 4, 5]

 


 

3. ArrayList 메서드

예시: list = [1, 2, 3, 4, 5];            // ArrayList라고 가정

 

1) 값 추가

list.add(6);	// 맨 끝에 6 추가
// list = [1, 2, 3, 4, 5, 6]

 

2) 값 삭제

list.remove(1) // index 1 위치에 있는 요소 제거
// list = [1, 3, 4, 5, 6]

** 원소가 아닌 Collection을 추가/삭제 할 경우 add 대신에 addAll, remove 대신에 removeAll을 사용한다.

 

 

3) 값 리턴

list.get(2)		// 인덱스에 해당하는 요소 반환
// 4

 

4) 값 유무 확인

list.indexOf(2)		// 2 값이 있는지 확인
// -1 (없으니 -1 리턴)
list.indexOf(1)		// 1 값이 있는지 확인
// 0  (0번째 인덱스에 있으니 0 리턴)

list.contains(2)	// 2 값이 있는지 확인
// false (없으니 false 리턴)
list.contains(1) 	// 1 값이 있는지 확인
// true  (있으니 true 리턴)

 

5) 값 변경

list.set(0, 10); 	// 0번째 인덱스의 요소를 10으로 변경
// list = [10, 3, 4, 5, 6]

 

6) 리스트 크기

list.size()		// list의 크기 리턴
// 5

'JAVA' 카테고리의 다른 글

#3. Arrays 메소드  (0) 2021.09.05
#1. 정규식  (0) 2021.08.30

1. 정규식(Regular Expressions)이란?

  • 문자열에 어떤 패턴의 문자들이 있는지 찾는데 도움을 줌
  • 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
  • 줄여서 Regex라고도 함
  • String 함수들과 함께 사용: s.matches(regex) / s.split(regex) / s.replaceAll(regex)

 

2. 정규식 표현방법

예시) String s = "abc de fg
Regular Expression Description 예시
^ 문자열의 시작을 의미 s.replaceAll("^a", "*") : "*bc de fg
$ 문자열의 종료를 의미 s.replaceAll("g$", "*") : abc de f*
. 문자 1개를 의미 s.replaceAll("a.", "*") : *c de fg
[...] [] 안의 한 문자 또는 문자집합 s.replaceAll("[ab]", "*") : **c de fg
[...][...] []안의 문자들의 조합 - 1문자로 취급 s.replaceAll("[a][b]", "*") : *c de fg
[.. - ..] 문자의 집합일 경우 -로 범위 지정 s.replaceAll("[a-d]", "*") : *** *e fg
[^...] []안의 문자(혹은 문자집합)을 제외 s.replaceAll("[^abc ]", "*") : abc ** **
A|B A 또는 B s.replaceAll("a|g", "*") : *bc de f*
* * 앞의 문자 반복 ^[a-zA-Z]*$*: 문자만 허용
  • [ab]는 a, b를 각각 한 문자로 취급하여 *가 두 개가 나오지만, [a][b]는 ab를 한 문자로 취급하여 *가 한 개가 나옴
  • [^...]는 공백도 문자로 취급함 -> 예시에서 [^abc ]가 아닌 [^abc]인 경우 abc******로 나옴

 

 

* 이 외의 정규표현식은 계속 추가할 예정

'JAVA' 카테고리의 다른 글

#3. Arrays 메소드  (0) 2021.09.05
#2. ArrayList  (0) 2021.08.31

+ Recent posts