[JAVA] 배열에서 특정 요소 제거

S:)·2024년 9월 14일
0

한번 더.

목록 보기
2/2

자바에서 배열 특정 요소 제거

일단 , 기본적인 메서드서드에서는 제공하지 않는다.
->배열이 고정크기라서 인덱스의 요소를 제거하느 메서드를 제공하지 않는다.
(다른 언어를 쓰다가 JAVA를 사용하면.. 익숙치 않아서.. 당혹스럽다.)

방법은, list로 변환 후 제거 하거나 , Stream API 를 사용 하는 것이다.

1. list로 변환 후 제거

: 배열을 list로 변환 후 list의 remove 메서드를 사용한다.

String[] A = {"1" ,"2" ,"3" ,"4"};
//배열 > list로 변환
List<String> list = new ArrayList<>(Arrays.asList(A));
//list 의 remove 메서드 사용 
list.remove(index);

// Array로 출력하거나 
Arrays.toString(list); 
//list > 배열로 다시 변환
A = list.toArray(new String[0]); 

🤔배열 타입이 int 인 경우는 다르다!(int와 같은 primitive 타입 모두)
asList() 사용 불가 하다.

  1. for 문
int[] Arr = {1,2,3,4};
//int -> List
List<integer> li = new ArrayList<>();
//for문으로 하나씩 넣기 
for(int i : Arr){
	li.add(i);
}
  1. Stream 사용하기
int[] arr = {1,2,3,4};
//int -> List
List<integer> li = Arrays.stream(arr)
					.boxed()
                    .collect(Collectors.toList());

2. Stream API

public static void main(String args[]) {
 String[] A = {"1" ,"2" ,"3" ,"4"};

  String[] newArray = IntStream.range(0, strArray.length)
                               .filter(idx -> idx != 2)
                               .mapToObj(idx -> strArray[idx])
                               .toArray(String[]::new);

}
profile
일단 저장

0개의 댓글