Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 배열 요소를 변경할 수 없도록 만드는 방법은 무엇입니까?

<시간/>

아니요, 배열의 요소를 변경할 수 없습니다.

그러나 unmodifiableList() java.util.Collections의 메소드 클래스는 List 인터페이스의 객체(해당 클래스를 구현하는 객체)를 받아들이고 주어진 객체의 수정 불가능한 형태를 반환합니다. 사용자는 획득한 목록에 대해 읽기 전용 액세스 권한만 있습니다.

그리고 asList() ArrayList 메소드 클래스는 배열을 받아들이고 List 객체를 반환합니다.

따라서 배열을 변경할 수 없도록 변환하려면 -

  • 원하는 어레이를 얻습니다.

  • asList()를 사용하여 목록 개체로 변환합니다. 방법.

  • 얻은 목록을 unmodifiableList()에 매개변수로 전달 방법.

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class UnmodifiableExample {
   public static void main(String args[]) {
      //Creating a string array
      String strArray[] = {"Raju", "Rama", "Rahman", "Rachel", "Ranbhir", "Rangan"};
      //Converting the string array to list object
      List<String> list = Arrays.asList(strArray);
      //Converting the List object to immutable
      List<String> immutable = Collections.unmodifiableList(list); System.out.println(immutable);
      immutable.add("komala");
   }
}

출력

[Raju, Rama, Rahman, Rachel, Ranbhir, Rangan]
Exception in thread "main" java.lang.UnsupportedOperationException
   at java.util.Collections$UnmodifiableCollection.add(Unknown Source)
   at September19.UnmodifiableExample.main(UnmodifiableExample.java:19)