>  기사  >  Java  >  2020 새로운 Java 면접 질문 - 컨테이너 (3)

2020 새로운 Java 면접 질문 - 컨테이너 (3)

王林
王林앞으로
2020-04-17 17:08:271687검색

2020 새로운 Java 면접 질문 - 컨테이너 (3)

1. Array와 ArrayList의 차이점은 무엇인가요?

Array는 기본 유형과 객체를 담을 수 있지만 ArrayList는 객체만 담을 수 있습니다.

Array에는 지정된 크기가 있지만 ArrayList의 초기 크기는 고정되어 있습니다.

Array는 addAll, RemoveAll, iterator 등 ArrayList만큼 많은 기능을 제공하지 않습니다.

2. 대기열에서 poll()과 제거()의 차이점은 무엇인가요?

Queue Remove() 및 poll()은 모두 대기열의 헤드에서 요소를 삭제하는 데 사용됩니다. 대기열 요소가 비어 있으면 Remove() 메서드는 NoSuchElementException 예외를 발생시키고 poll() 메서드는 null만 반환합니다.

추천 튜토리얼: Java 시작하기

3. 스레드로부터 안전한 컬렉션 클래스란 무엇입니까?

Vector: ArrayList보다 동기화 메커니즘(스레드 안전성)이 하나 더 있으므로 효율성이 낮기 때문에 더 이상 사용하지 않는 것이 좋습니다.

statck: 스택 클래스, 선입 후처리

hashtable: HashMap보다 동기화 메커니즘이 하나 더 있습니다.

열거: 열거, 반복자와 동일

4. 반복자란 무엇입니까?

반복자는 개발자가 시퀀스의 기본 구조를 알 필요 없이 시퀀스의 개체를 반복하고 선택하는 개체인 디자인 패턴입니다. 반복자는 생성 비용이 저렴하기 때문에 종종 "경량" 개체라고 불립니다.

(java 면접 질문 칼럼:https://www.php.cn/java/interview/)

5. Iterator를 사용하는 방법은 무엇인가요? 특징은 무엇입니까?

1. Iterator 함수는 비교적 간단하며 한 방향으로만 이동할 수 있습니다.

2. iterator() 메서드를 사용하여 컨테이너에 Iterator를 반환하도록 요청합니다. Iterator의 next() 메소드가 처음 호출되면 시퀀스의 첫 번째 요소를 반환합니다. 참고: iterator() 메소드는 java.lang.Iterable 인터페이스이며 Collection에 의해 상속됩니다.

3. hasNext()를 사용하여 시퀀스에 요소가 있는지 확인합니다.

4. next()를 사용하여 시퀀스의 다음 요소를 가져옵니다.

5. iterator

6. Iterator는 List용으로 설계된 가장 간단한 구현입니다. List를 두 방향으로 탐색할 수 있고 List에서 요소를 삽입하고 삭제할 수도 있습니다.

예제 코드:

    public static void main(String[] args) {
        // List
        ArrayList<String> list = new ArrayList<>();
        list.add("apple");
        list.add("pear");
        list.add("banana");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String s = iterator.next();
            if ("apple".equals(s)){
                iterator.remove();
            }
        }
        list.forEach(item -> System.out.println(item));

        // Map<key,value>
        Map<String,String> map=new HashMap<>();
        map.put("pig","猪");
        map.put("cat","猫");
        map.put("dog","狗");
        Iterator<String> iterator1 = map.keySet().iterator();
        Iterator<String> iterator2 = map.values().iterator();
        while (iterator1.hasNext()){
            System.out.println(iterator1.next());
        }
        while (iterator2.hasNext()){
            System.out.println(iterator2.next());
        }
    }

추천 관련 비디오 튜토리얼: java video

위 내용은 2020 새로운 Java 면접 질문 - 컨테이너 (3)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제