ArrayList 삽입 및 검색 순서


88

5 개의 문자열을 ArrayList. 삽입 및 검색 순서 ArrayList는 동일합니까?


88
한 번 시도해 보는 것도 한 가지입니다. 매번 같을 것이라는 것을 확인하는 것은 또 다른 일입니다.
Suragch 2015

답변:


82

아래 코드를 확인하고 실행하십시오.

public class ListExample {

    public static void main(String[] args) {
        List<String> myList = new ArrayList<String>();
        myList.add("one");
        myList.add("two");
        myList.add("three");
        myList.add("four");
        myList.add("five");

        System.out.println("Inserted in 'order': ");
        printList(myList);
        System.out.println("\n");
        System.out.println("Inserted out of 'order': ");

        // Clear the list
        myList.clear();

        myList.add("four");
        myList.add("five");
        myList.add("one");
        myList.add("two");
        myList.add("three");

        printList(myList);
    }

    private static void printList(List<String> myList) {
        for (String string : myList) {
            System.out.println(string);
        }
    }
}

다음 출력을 생성합니다.

Inserted in 'order': 
one
two
three
four
five


Inserted out of 'order': 
four
five
one
two
three

자세한 정보는 문서를 참조하십시오. List (Java Platform SE7)


8
순서를 명확하게 설명하는 Java 문서에 대한 링크를 포함하는 +1.
Ogre Psalm33

20
샘플 출력이 유용 할 것입니다
nilesh

1
훌륭한 예입니다. 이것에 대해 +1.
Pawan Tiwari

123

. ArrayList는 순차 목록입니다. 입니다. 따라서 삽입 및 검색 순서는 동일합니다.

검색 중에 요소를 추가 하면 순서가 동일하게 유지되지 않습니다.


1
OP가 끝에 "삽입"되면 추가라고도합니다.
Peter Lawrey

2
두 번째 명령문은 한 스레드가 검색하는 동안 다른 스레드가 새 요소를 추가하기 위해 개입하는 경우를 의미합니다. 그러면 순서가 동일하게 유지되지 않습니다
xpioneer

38

항상 끝에 추가하면 각 요소가 끝에 추가되고 변경할 때까지 그대로 유지됩니다.

항상 처음에 삽입하면 각 요소는 추가 한 역순으로 나타납니다.

중간에 넣으면 순서가 달라집니다.


12

예, 항상 동일합니다. 로부터 문서

이 목록의 끝에 지정된 요소를 추가합니다. 매개 변수 :이 목록에 추가 될 e 요소 반환 값 : true (Collection.add (java.lang.Object)에 지정된대로)

ArrayList add()구현

public boolean More ...add(E e) {
    ensureCapacity(size + 1);  // Increments modCount!!
    elementData[size++] = e;
    return true;
}

-1

예, 동일하게 유지됩니다. 하지만 왜 쉽게 테스트하지 않습니까? ArrayList를 만들고 채우고 요소를 검색하십시오!


19
그러나 그것은 증거가 아닙니다.
YoTengoUnLCD

1
동일한 순서는 가능한 테스트 결과 중 하나입니다. 구현이 블랙 박스 인 경우 동일한 순서가 특정 사례 일 수 있습니다. 예는 정렬 된 목록입니다. 정렬 된 목록에 요소를 적절한 순서로 추가하면 정렬 된 순서로 가져올 수 있지만 (단지 특정 경우) 임의의 순서로 추가하면 정렬됩니다. 구현을 확인하지 않고 ArrayList를 테스트하면 "아마도 순서가 동일 할 것입니다"라고 표시됩니다.
SIMAR
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.