2024. 1. 9. 17:21ㆍJava 기초개념
for(String fruit : fruits) {
System.out.println(fruit);
}
numbers[0] = 1;
numbers[1] = 2;
배열
배열은 동일한 타입의 여러 데이터를 연속적인 메모리 공간에 저장하는 데 사용되는 기본적인 자료구조이다.
Java 배열은 "객체"로 취급되며, 선언된 후에는 크기가 고정된다.
배열의 선언, 생성 및 초기화 예시
int[] numbers = new int[5]; // 5개의 정수를 저장할 수 있는 배열 선언, 초기화되지 않음
numbers[0] = 1; // 첫 번째 요소에 값 전달
numbers[1] = 2; // 두 번째 요소에 값 전달
String[] fruits = {"apple", "banana", "mango"}; // 초기값이 있는 문자열 배열
배열은 크게 초기화된 배열, 초기화되지 않은 배열로 나눌 수 있다.
첫 번째 배열은 초기화되지 않은 배열이다.
따라서 각 요소에 값을 "직접" 전달해야 한다.
numbers[0] = 1;
numbers[1] = 2;
두 번째 배열은 초기화된 배열이다.
초기화된 배열은 초기값이 있는 문자열 배열이기 때문에 값 추가를 해주지 않아도 된다.
단, 초기화되면서 자동으로 크기가 지정되기 때문에, 추가적으로 값을 부여하는 것이 불가능하다.
배열의 길이 알아내기
int length = numbers.length; // 배열의 길이
배열 순회
for(int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
for(String fruit : fruits) {
System.out.println(fruit);
}
배열을 순회하는 방법은 크게 2가지가 있다.
첫 번째는, 배열의 길이를 활용하는 방법이다.
배열의 길이는 .length를 이용해 알아낼 수 있다.
두 번째는, 향상된 for문을 이용하는 방법이다.
특정 변수인 "fruit"를 활용해 fruits 배열을 순회할 수 있다.
ArrayList
ArrayList는 Java의 'java.util' 패키지에 있는 컬렉션 클래스이다.
내부적으로는 배열을 사용하여 데이터를 저장하지만, 배열과 달리 필요에 따라 크기가 자동 조정된다.
ArrayList의 주요 특징에는 총 5가지가 있다.
1. 가변 크기 : 요소가 추가되거나 제거될 때 내부 배열의 크기를 자동으로 조정
2. 인덱스 기반 접근 : 인덱스를 통해 리스트의 요소에 빠르게 접근
3. 동일한 타입 : 제네릭을 지원하며, 지정된 타입의 객체만을 저장
4. 순서 유지 : 추가된 요소는 삽입된 순서대로 유지
5. 중복 허용 : 중복된 요소의 저장을 허용
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
//요소 추가
int num = numbers.get(0);
// 특정 인덱스의 요소 접근
int size = numbers.size();
// 크기 얻기
for(int i = 0; i < numbers.size(); i++) {
System.out.println(numbers.get(i));
}
// 반복문을 통한 요소 접근
for(int number : numbers) {
System.out.println(number);
}
// 향상된 for 문을 사용한 순회
numbers.remove(Integer.valueOf(2));
numbers.remove(0);
// 요소 제거
}
}
'Java 기초개념' 카테고리의 다른 글
[이코테 with Java] 자료구조와 스택 (1) | 2024.01.22 |
---|---|
parse 메서드와 valueOf 메서드(parseInt, Integer.valueOf, 차이점) (0) | 2024.01.17 |
StringBuilder 주요 메서드(append, insert, reverse, toString 등) (0) | 2024.01.16 |
Scanner 클래스 (부제: scanner.next(), scanner.nextLine() 차이점, scanner 문자만 입력) (0) | 2024.01.16 |
String 클래스의 주요 메소드 (0) | 2024.01.12 |