[java] Java에서 새 목록을 만드는 방법

우리는 다음 Set과 같이 만듭니다 .

Set myset = new HashSet()

ListJava로 어떻게 작성 합니까?



답변

List myList = new ArrayList();

또는 제네릭 사용 ( Java 7 이상)

List<MyType> myList = new ArrayList<>();

또는 제네릭 (오래된 Java 버전)

List<MyType> myList = new ArrayList<MyType>();


답변

또한 목록이있는 목록을 만들려면 크기가 고정되어 있지만 :

List<String> messages = Arrays.asList("Hello", "World!", "How", "Are", "You");


답변

요약하고 무언가를 추가하겠습니다.

JDK

1. new ArrayList<String>();
2. Arrays.asList("A", "B", "C")

구아바

1. Lists.newArrayList("Mike", "John", "Lesly");
2. Lists.asList("A","B", new String [] {"C", "D"});

불변 목록

1. Collections.unmodifiableList(new ArrayList<String>(Arrays.asList("A","B")));
2. ImmutableList.builder()                                      // Guava
            .add("A")
            .add("B").build();
3. ImmutableList.of("A", "B");                                  // Guava
4. ImmutableList.copyOf(Lists.newArrayList("A", "B", "C"));     // Guava

빈 불변 목록

1. Collections.emptyList();
2. Collections.EMPTY_LIST;

문자 목록

1. Lists.charactersOf("String")                                 // Guava
2. Lists.newArrayList(Splitter.fixedLength(1).split("String"))  // Guava

정수 목록

Ints.asList(1,2,3);                                             // Guava


답변

자바 8에서

비어 있지 않은 고정 크기 목록을 작성하려면 (add, remove 등의 작업은 지원되지 않음) :

List<Integer> list = Arrays.asList(1, 2); // but, list.set(...) is supported

비어 있지 않은 변경 가능 목록을 작성하려면 다음을 수행하십시오.

List<Integer> list = new ArrayList<>(Arrays.asList(3, 4));

자바 9

새로운 List.of(...)정적 팩토리 메소드 사용 :

List<Integer> immutableList = List.of(1, 2);

List<Integer> mutableList = new ArrayList<>(List.of(3, 4));

자바 10

은 Using 지역 변수 유형 추론을 :

var list1 = List.of(1, 2);

var list2 = new ArrayList<>(List.of(3, 4));

var list3 = new ArrayList<String>();

모범 사례를 따르십시오.

원시 유형을 사용하지 마십시오

Java 5부터 generics는 언어의 일부 였으므로 다음을 사용해야합니다.

List<String> list = new ArrayList<>(); // Good, List of String

List list = new ArrayList(); // Bad, don't do that!

인터페이스 프로그램

예를 들어, List인터페이스에 프로그램하십시오 .

List<Double> list = new ArrayList<>();

대신에:

ArrayList<Double> list = new ArrayList<>(); // This is a bad idea!


답변

먼저 이것을 읽은 다음 이것이것을 읽으십시오 . 10 중 9 번이 두 구현 중 하나를 사용합니다.

실제로, Sun의 Collections to Collections 프레임 워크를 읽으십시오 .


답변

//simple example creating a list form a string array

String[] myStrings = new String[] {"Elem1","Elem2","Elem3","Elem4","Elem5"};

List mylist = Arrays.asList(myStrings );

//getting an iterator object to browse list items

Iterator itr= mylist.iterator();

System.out.println("Displaying List Elements,");

while(itr.hasNext())

  System.out.println(itr.next());


답변

Java 7부터 일반 인스턴스 작성에 대한 유형 유추가 있으므로 할당의 오른쪽에 일반 매개 변수를 복제 할 필요가 없습니다.

List<String> list = new ArrayList<>();

고정 크기 목록은 다음과 같이 정의 할 수 있습니다.

List<String> list = Arrays.asList("foo", "bar");

불변 목록의 경우 Guava 라이브러리를 사용할 수 있습니다 .

List<String> list = ImmutableList.of("foo", "bar");