Development Tip

ArrayList를 읽기 전용으로 설정

yourdevel 2020. 12. 15. 19:51
반응형

ArrayList를 읽기 전용으로 설정


Java에서 ArrayList초기화 후에 어떻게 읽기 전용으로 만들 수 있습니까 (아무도 요소를 추가, 편집 또는 삭제할 수 없음)?


패스 ArrayList로를 Collections.unmodifiableList(). 지정된 목록의 수정할 수없는보기를 반환합니다. 반환 된 값만 사용 List하고 원본은 사용 하지 마십시오 ArrayList.


목록 개체를에 전달 Collections.unmodifiableList()합니다. 아래 예를 참조하십시오.

import java.util.*;

public class CollDemo
{
    public static void main(String[] argv) throws Exception
    {
        List stuff = Arrays.asList(new String[] { "a", "b" });
        List list = new ArrayList(stuff);
        list = Collections.unmodifiableList(list);
        Set set = new HashSet(stuff);
        set = Collections.unmodifiableSet(set);
        Map map = new HashMap();
        map = Collections.unmodifiableMap(map);
        System.out.println("Collection is read-only now.");
    }
}

컬렉션 개체를 해당 Collections클래스 의 해당 수정 불가능한 함수에 전달 합니다. 다음 코드는unmodifiableList

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


public class Temp {

    public static void main(String[] args) {

        List<Integer> objList = new ArrayList<Integer>();
        objList.add(4);
        objList.add(5);
        objList.add(6);
        objList.add(7);

        objList = Collections.unmodifiableList(objList);
        System.out.println("List contents " + objList);

        try {
            objList.add(9);
        } catch(UnsupportedOperationException e) {
            e.printStackTrace();
            System.out.println("Exception occured");
        }
        System.out.println("List contents " + objList);
    }

}

수정 불가능한 다른 컬렉션을 만들 수도 있습니다.


ArrayList이 경우 를 사용 하시겠습니까?

Maybe it would be better to first populate an ArrayList with all of your information, and then convert the ArrayList into a final array when the Java program initializes.

ReferenceURL : https://stackoverflow.com/questions/2419353/make-arraylist-read-only

반응형