커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
자료구조로 리팩토링한 레시피 2주차 질문입니다. Map, Set에 관하여
Java 문법 종합반 v0
2주차
북마크
김*환
댓글
1
추천
0
조회수
10
조회수
10
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


2주차 자료구조로 만드는 레시피를 하고 있는데, Set과 Map으로 레시피 내용을 담으면 순서가 보장되지 않음으로 출력될때 뒤죽박죽 나오는게 정상아닌가요? 그럼에도 불구하고 Set과 Map으로 레시피들을 받아서 출력을 올바른 순서로 할 수 있는 방법을 찾는게 과제 인가요?



package 프로그래머스레벨1;


import java.util.ArrayList;

import java.util.HashMap;

import java.util.HashSet;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Scanner;

import java.util.Set;


public class Main02 {


public static void main(String[] args) {


Scanner sc = new Scanner(System.in);

String collectionName = sc.nextLine();


if (collectionName.equals("List")) {


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

for (int i = 0; i < 100; i++) {

String line = sc.nextLine();

if (line.equals("끝")) {

list.add("끝");

break;

}

list.add(line);

}


System.out.println("[ List 으로 저장된 " + list.get(0) + " ] ");

for (int i = 1; i < 100; i++) {


String line = list.get(i);

if (line.equals("끝")) {

break;

} else {

System.out.println(i + ". " + list.get(i));

}

}

} // List part 끝


else if (collectionName.equals("Set")) {

String title = sc.nextLine();

Set<String> set = new HashSet<>();

for (int i = 0; i < 100; i++) {

String line = sc.nextLine();

if (line.equals("끝")) {

break;

}

set.add(line);

}


Iterator<String> iterator = set.iterator();

int i = 0;

System.out.println("[ Set으로 지정된 " + title + " ]");

while (iterator.hasNext()) {


String line = iterator.next();


System.out.println((i+1) + ". " + line);

i++;


}

} // Set part 끝


else if (collectionName.equals("Map")) {

String title = sc.nextLine();

Map<String, Integer> map = new HashMap<>();

for (int i = 0; i < 100; i++) {


String line = sc.nextLine();

if (line.equals("끝"))

break;


map.put(line, i);

} // for


List<String> list = new ArrayList<>(map.keySet());

System.out.println("[ Map으로 저장된 " + title + " ]");

for (int i = 0; i < map.size(); i++) {


System.out.println((i + 1) + ". " + list.get(i));

}


} // Map part 끝

else {

System.out.println("잘 못 입력하셨습니다. ");

}


}

}




작성한 코드 및 에러 메세지

오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아

스파르타 즉문즉답

이렇게 뒤죽박죽으로 나옵니다. ㅠㅠ



취소
 공유
취소
댓글 0
댓글 알림
나의얼굴