일단 , 기본적인 메서드서드에서는 제공하지 않는다.
->배열이 고정크기라서 인덱스의 요소를 제거하느 메서드를 제공하지 않는다.
(다른 언어를 쓰다가 JAVA를 사용하면.. 익숙치 않아서.. 당혹스럽다.)
방법은, list로 변환 후 제거 하거나 , Stream API 를 사용 하는 것이다.
: 배열을 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() 사용 불가 하다.
- for 문
int[] Arr = {1,2,3,4}; //int -> List List<integer> li = new ArrayList<>(); //for문으로 하나씩 넣기 for(int i : Arr){ li.add(i); }
- Stream 사용하기
int[] arr = {1,2,3,4}; //int -> List List<integer> li = Arrays.stream(arr) .boxed() .collect(Collectors.toList());
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);
}