반응형
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
반응형
'Development Tip' 카테고리의 다른 글
사용자가 수행 할 권한이 없습니다. cloudformation : CreateStack (0) | 2020.12.15 |
---|---|
Ruby 1.9를 Ubuntu에서 기본 Ruby로 만들려면 어떻게해야합니까? (0) | 2020.12.15 |
문자열을 모든 유형으로 변환하는 방법 (0) | 2020.12.15 |
Visual Studio 2010은 예상대로 종속성 인 프로젝트에서 정적 라이브러리를 자동 연결하지 않습니다. (0) | 2020.12.15 |
iOS에서 SHA-2 (이상적으로 SHA 256 또는 SHA 512) 해시를 계산하려면 어떻게해야합니까? (0) | 2020.12.15 |