"안녕, 아미고."

"어이, 리시."

"Ellie는 컬렉션의 더 많은 예를 원한다고 말했습니다. 몇 가지를 알려드리겠습니다. 다음은 컬렉션 및 인터페이스 목록입니다."

상호 작용 클래스/구현 설명
목록  배열목록  목록
 LinkedList  목록
 벡터  벡터
 스택  스택
 세트    해시셋  세트
 트리셋  세트
 SortedSet  정렬된 집합
지도  해시맵 지도/사전
 트리맵  지도/사전
 SortedMap  정렬된 사전
 해시 테이블  해시 테이블

"흠. 꽤 많군. 목록 4개, 세트 3개, 맵 4개."

"예, 그것들은 모두 List, Set 및 Map 인터페이스의 다른 구현입니다."

"이러한 구현의 차이점은 무엇입니까?"

"그게 바로 오늘 우리가 이야기할 내용입니다. 조금만 참으세요."

"다른 질문이 있습니까?"

" 화면에 목록을 표시하는 방법을 알고 있습니다. 세트나 지도는 어떻게 표시합니까?"

"목록의 요소에는 정해진 순서가 있으므로 색인을 사용하여 표시할 수 있습니다. 세트 또는 지도의 경우 특정 순서가 없습니다. 사실 요소의 순서는 항목이 삭제되거나 새 항목으로 변경될 수 있습니다. 항목이 추가됩니다."

"놀라운."

"이것이 컬렉션 요소와 함께 작동하도록 반복자라고 하는 특수 개체가 발명된 이유입니다 . 이를 통해 인덱스(Map) 대신 이름만 있거나 이름도 인덱스도 없는 컬렉션의 모든 요소를 ​​살펴볼 수 있습니다( 세트)."

"여기 몇 가지 예가 있어요:"

집합의 표시 요소
public static void main(String[] args)
{
    Set&ltString> set = new HashSet&ltString>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

     // Get an iterator for the set
     Iterator&ltString> iterator = set.iterator();

    while (iterator.hasNext())        // Check if there is another element
    {
       // Get the current element and move to the next one
       String text = iterator.next();

        System.out.println(text);
    }
}
2
과제
Java Syntax,  레벨 8레슨 2
잠금
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
목록의 표시 요소
public static void main(String[] args)
{
    List&ltString> list = new ArrayList&ltString>();
    list.add("Rain");
    list.add("In");
    list.add("Spain");

    Iterator&ltString> iterator = list.iterator();// Get an iterator for the list

    while (iterator.hasNext())      // Check if there is another element
    {
        // Get the current element and move to the next one
        String text = iterator.next();

        System.out.println(text);
    }
}
지도의 표시 요소
public static void main(String[] args)
{
    // All elements are stored in pairs
    Map<String, String> map = new HashMap<String, String>();
    map.put("first", "Rain");
    map.put("second", "In");
    map.put("third", "Spain");

    Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();

   while (iterator.hasNext())
    {
        // Get a key-value pair
        Map.Entry<String, String> pair = iterator.next();
        String key = pair.getKey();            // Key
        String value = pair.getValue();        // Value
        System.out.println(key + ":" + value);
    }
}

"와우. 그게 다 무슨 뜻인지 궁금해."

"실제로는 매우 간단합니다. 먼저 컬렉션에서 특수 개체인 반복자를 가져옵니다. 반복자에는 두 가지 메서드만 있습니다.

1. next() 메서드는 컬렉션의 다음 요소를 반환합니다.

2. hasNext() 메서드는 next()에서 반환되지 않은 요소가 아직 있는지 확인합니다."

"알았어. 이제 좀 더 명확해지고 있는 것 같아. 내가 이해한 걸 다시 말해줄게."

"그래서... 먼저 이 매직 반복자 개체를 가져오려면 컬렉션에서 iterator() 메서드를 호출해야 합니다."

"그런 다음 가져올 요소가 남아 있는 한 요소를 하나씩 가져옵니다. next()를 호출하여 컬렉션의 다음 요소를 가져오고 컬렉션에서 hasNext()를 호출하여 컬렉션에 아직 요소가 있는지 확인합니다. 이터레이터. 맞습니까?"

"예, 다소간. 하지만 좋은 부분을 기다리십시오."

"Java에는 반복자 작업을 위한 속기 표기법이 있습니다. whilefor 패턴에 따라 for each 라는 특수 문이 하나 더 추가되었습니다 . 또한 for 키워드를 사용하여 표시됩니다 ."

"for-each 문은 컬렉션 및 컨테이너 작업에만 사용됩니다. 암시적으로 반복자를 사용하지만 반환된 요소만 볼 수 있습니다."

"이터레이터로 작업하는 자세한 방법과 속기 방법을 보여 드리겠습니다."

보통 필기법
public static void main(String[] args)
{
  Set&ltString> set = new HashSet&ltString>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

    Iterator&ltString> iterator = set.iterator();
  while (iterator.hasNext())
  {
    String text = iterator.next();
    System.out.println(text);
  }
}
속기
public static void main(String[] args)
{
    Set&ltString> set = new HashSet&ltString>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

   for (String text : set)
    {
        System.out.println(text);
    }
}

"빨간색 또는 녹색으로 강조 표시된 단어는 오른쪽 부분에 없습니다. 사실 세 줄이 한 줄로 대체됩니다."

보통 필기법
Iterator&ltString> iterator = set.iterator();
while (iterator.hasNext())
{
    String text = iterator.next();
속기
for (String text : set)

"멋져 보여요. 저는 이 방법이 훨씬 좋습니다."

"위 예제의 속기 버전을 살펴보겠습니다."

집합의 표시 요소
public static void main(String[] args)
{
    Set&ltString> set = new HashSet&ltString>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

    for (String text : set)
    {
        System.out.println(text);
    }
}
목록의 표시 요소
public static void main(String[] args)
{
    List&ltString> list = new ArrayList&ltString>();
    list.add("Rain");
    list.add("In");
    list.add("Spain");

     for (String text : list)
    {
        System.out.println(text);
    }
}
지도의 표시 요소
public static void main(String[] args)
{
    Map<String, String> map = new HashMap<String, String>();
    map.put("first", "Rain");
    map.put("second", "In");
    map.put("third", "Spain");

    for (Map.Entry<String, String> pair : map.entrySet())
    {
        String key = pair.getKey();                      // Key
        String value = pair.getValue();                  // Value
        System.out.println(key + ":" + value);
    }
}

"지금 말하는거야!"

"마음에 드셨다니 다행입니다."