JAVA에서 Arrays.asList와 마침표 기준 Split 활용하기

안녕하세요, 프로그래밍에 관심이 많은 여러분! 오늘은 Java에서 Arrays.asList 메서드와 문자열을 마침표(.)를 기준으로 분리하여 ArrayList에 넣는 방법에 대해 깊이 있게 살펴보도록 하겠습니다. 이 두 가지 기법은 Java 프로그래밍에서 매우 유용하게 사용되며, 특히 배열과 리스트 간의 변환 및 문자열 처리에 강력한 도구가 됩니다.

그럼 시작해볼까요?

썸네일

Arrays.asList 메서드란?

Java에서 Arrays.asList() 메서드는 배열을 고정 크기의 리스트로 변환하는 데 사용되는 유용한 메서드입니다. 이 메서드는 java.util.Arrays 클래스의 일부로, 배열 기반의 API와 컬렉션 기반의 API 간의 브릿지 역할을 합니다.

Arrays.asList 사용법

Arrays.asList() 메서드는 가변 인자를 받아들이며, 주어진 배열의 요소를 포함하는 리스트를 반환합니다. 여기서 중요한 점은 반환된 리스트가 고정 크기라는 것입니다.

즉, 이 리스트에 새로운 요소를 추가하거나 기존 요소를 제거할 수 없습니다. 아래는 Arrays.asList() 메서드를 사용하는 간단한 예제입니다.

java
String[] fruits = {"Apple", "Banana", "Cherry"};
List<String> fruitList = Arrays.asList(fruits);

위 코드에서 fruits 배열을 Arrays.asList() 메서드를 통해 fruitList 리스트로 변환하였습니다. 이 리스트는 fruits 배열과 연결되어 있으며, 리스트의 요소를 변경하면 원본 배열에도 영향을 줍니다.

주의사항

Arrays.asList() 메서드를 사용할 때 몇 가지 주의사항이 있습니다.

  1. 고정 크기 리스트: 반환된 리스트는 고정 크기이므로 요소를 추가하거나 삭제할 수 없습니다. 예를 들어, fruitList.add("Grape")와 같은 코드는 UnsupportedOperationException을 발생시킵니다.
  2. 원본 배열과의 연결: Arrays.asList()로 생성된 리스트는 원본 배열과 연결되어 있습니다. 이 리스트의 요소를 변경하면 원본 배열의 요소도 변경됩니다.
  3. Primitive Type 주의: 기본 데이터 타입(primitive type)의 경우, Arrays.asList() 메서드는 자동 박싱(autoboxing)이 일어나지 않습니다. 예를 들어, int[]와 같은 배열을 전달하면 List<int[]> 타입이 반환됩니다. 따라서, Integer[]를 사용해야 합니다.
주의사항 설명
고정 크기 리스트 요소 추가/삭제 불가
원본 배열 연결 리스트 요소 변경 시 원본 배열도 함께 변경됨
Primitive Type 자동 박싱이 일어나지 않음. 반드시 Wrapper Class 사용 필요

이러한 주의사항을 염두에 두고 Arrays.asList() 메서드를 사용하면, 배열과 리스트 간의 변환을 효율적으로 할 수 있습니다.

문자열을 마침표 기준으로 분리하기

이번 섹션에서는 문자열을 마침표(.)를 기준으로 분리하여 리스트에 저장하는 방법에 대해 알아보겠습니다. Java에서는 String 클래스의 split() 메서드를 사용하여 문자열을 특정 구분자에 따라 나눌 수 있습니다.

String.split() 메서드

split() 메서드는 문자열을 특정 정규 표현식(regular expression)을 기준으로 나누어 배열로 반환합니다. 마침표는 정규 표현식에서 특별한 의미를 가지기 때문에, 이를 사용하려면 이스케이프 문자 \\를 사용해야 합니다.

아래는 마침표를 기준으로 문자열을 분리하는 예제입니다.

java
String text = "사과.바나나.체리";
String[] fruitsArray = text.split("\\.");

위 코드에서 text 문자열은 마침표를 기준으로 두 개의 요소로 나뉘어 fruitsArray 배열에 저장됩니다.

Arrays.asList와 결합하기

이제 split() 메서드를 사용하여 얻은 배열을 Arrays.asList() 메서드를 통해 리스트로 변환하는 방법을 살펴보겠습니다. 이는 문자열을 분리하고, 결과를 리스트로 쉽게 변환할 수 있는 효율적인 방법입니다.

java
String text = "사과.바나나.체리";
List<String> fruitsList = Arrays.asList(text.split("\\."));

이제 fruitsList는 “사과”, “바나나”, “체리”라는 세 개의 요소를 가진 리스트가 됩니다. 이러한 방식으로 문자열을 쉽게 분리하고, 필요에 따라 리스트로 변환할 수 있습니다.

활용 예시

이 기법은 다양한 상황에서 유용하게 활용될 수 있습니다. 예를 들어, 사용자로부터 입력 받은 텍스트를 분석하거나, 파일에서 읽어온 데이터를 처리할 때 매우 유용합니다.

활용 예시 설명
사용자 입력 처리 입력된 문자열에서 특정 구분자로 나누어 리스트로 변환
데이터 파싱 파일에서 읽어온 데이터를 특정 구분자로 나누어 리스트로 변환

이와 같은 방식으로, split() 메서드와 Arrays.asList() 메서드를 조합하여 문자열을 효과적으로 처리할 수 있습니다.

다른 내용도 보러가기 #1

ArrayList로의 변환

이제, Arrays.asList() 메서드를 통해 생성한 리스트를 ArrayList로 변환하는 방법에 대해 알아보겠습니다. 앞서 언급했듯이, Arrays.asList()로 반환된 리스트는 고정 크기이므로, 자유롭게 요소를 추가하거나 삭제할 수 없습니다.

ArrayList 생성자 활용

ArrayList는 동적으로 크기를 조절할 수 있는 리스트입니다. 따라서, 고정 크기의 리스트를 ArrayList로 변환하면, 요소 추가 및 삭제가 가능합니다.

이를 위해 ArrayList의 생성자에 Arrays.asList()로 생성한 리스트를 전달하면 됩니다.

java
String text = "사과.바나나.체리";
List<String> fruitsList = new ArrayList<>(Arrays.asList(text.split("\\.")));

이제 fruitsListArrayList 타입이 되어, 자유롭게 요소를 추가하거나 삭제할 수 있습니다.

ArrayList의 유용성

ArrayList는 리스트의 크기가 동적으로 변할 수 있다는 장점 외에도 다양한 메서드를 제공하여 유용합니다. 예를 들어, add(), remove(), clear() 등의 메서드를 통해 리스트를 쉽게 조작할 수 있습니다.

ArrayList 메서드 설명
add() 리스트에 요소를 추가
remove() 특정 인덱스의 요소를 삭제
clear() 리스트의 모든 요소를 삭제

이와 같이 ArrayList는 다양한 상황에서 리스트를 관리하고 조작하는 데 매우 유용합니다.

결론

오늘은 Java에서 Arrays.asList() 메서드와 String.split() 메서드를 활용하여 문자열을 마침표 기준으로 분리하고, 이를 리스트로 변환하는 방법에 대해 자세히 알아보았습니다. 이 두 가지 기법은 배열과 리스트 간의 변환 및 문자열 처리를 효율적으로 수행할 수 있게 해줍니다.

이 글을 통해 Java의 기본적인 컬렉션과 문자열 처리 기법에 대한 이해가 깊어졌길 바랍니다. 프로그래밍에서는 이러한 기법들을 적절히 활용하는 것이 중요하며, 실습을 통해 더 많은 경험을 쌓아가시길 바랍니다.

감사합니다!

같이 보면 좋은 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다