오늘 자바 문법 2주차 강의를 들으면서 컬렉션을 배웠다...
collection(참조형 자료구조) 에서 List, Set, Queue, Map을 배웠는데 2주차 숙제를 하는데 Set에서 막혀버렸다..
나는 자바의 자료구조 중 Set을 이용하여 배열을 만들었다.
Set에서 LinkedhashSet이라는걸 썼다. 보통, HashSet을 쓰는데 순서보장이 필요할 때 LinkedHashSet을 주로 사용한다고 하더라..
나는 순서보장이 필요한 코드를 짜고 있었음 !
- LinkedhashSet: 추가된 순서, 또는 가장 최근에 접근한 순서대로 접근 가능
-> 2주차 숙제에서 데이터가 배열에 차곡차곡 쌓여야 했기 때문에
<bash />
System.out.println(num + "." + strget.get(i));
set은 생성자가 없는 껍데기라서 바로 생성할수가 없다고 한다. 그 중에서 생성자가 존재하는 클래스인 HashSet를 사용하면 Set을 생성해서 받을 수 있다. 그러나 나는 LinkedHashSet을 사용해서 get 메서드는 제공하지 않는다 !
그래서 구글링을 통해 Iterator을 찾았다 !
LinkedHashSet은 Iterator를 통해 순회할 수 있다. Itreator를 사용해서 순회하면서 특정 위치에 도달할때 까지 요소를 진행시키고 해당 요소를 가지고 올 수 있다
이렇게 Iterator을 사용해서 코드를 마무리 했다..!
<bash />
case "Set":
Set<String> strSet = new LinkedHashSet<String>();
while (true) {
String text = sc.next();
if (Objects.equals(text, "끝")) {
break;
}
strSet.add(text);
}
System.out.println("[" + collection +" 으로 저장된 " + title + "]");
Iterator iterator = strSet.iterator();
for(int i=0; i<strSet.size(); i++) {
int num = i + 1;
System.out.println(num + "." + iterator.next());
}
반응형
'study > study_Java' 카테고리의 다른 글
[JAVA] 인터페이스(interface) (0) | 2023.10.29 |
---|---|
TIL - 메모장_입력받은 내용 저장하는 메서드 만들기 (0) | 2023.06.05 |
TIL - 개인과제_ 주문 개수 추가 (0) | 2023.06.02 |
TIL - [래퍼클래스(Wrapper Class)]_자바문법1 (0) | 2023.05.22 |