:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
10/11/04 20:50
4개의 변수를 선언하고 각각 변수의 내용을 scanner로 입력 받으시면 됩니다.
그리고 각각 입력 받은 내용을 hashmap에 저장하시면 됩니다. 근데 검색을 통해서 해시에 저장한다는 말은 무슨 뜻인지를 모르겠네요.
10/11/04 21:00
Scanner s = new Scanner(System.in);
string name = s.next(); string phone = s.next(); string mail = s.next(); string addr = s.next(); hashmap.put(name, new Person(phone, mail, addr)); 이런 식으로 키보드로 입력받아서 해시맵에 저장하고요 string name = s.next(); Person ps = hashmap.get(name); 이런 식으로 입력받아서 해시맵에서 검색하세요.
10/11/04 21:54
import java.util.HashMap;
import java.util.Scanner; import java.util.jar.Attributes.Name; class Person Scanner s = new Scanner(System.in); //String name; String phone = s.next(); String email; String address; String group; Person( String phone, String email, String address, String group){ //this.name = name; this.phone = phone; this.email = email; this.address = address; this.group = group; } public class Assign6 public static void main(String[] args) { Scanner s = new Scanner(System.in); String name; HashMap<name, Person> hashmap = new HashMap<name, Person>(); for(int i = 1; i<21; i++) { System.out.println(">>Please enter a name #i"); String name = s.next(); System.out.println(">>Please enter a phone number of name #i"); String phone = s.next(); System.out.println(">>Please enter an e-mail of name #i"); String email = s.next(); System.out.println(">>Please enter an address of name #i"); String address = s.next(); System.out.println(">>Please enter a group of name #i"); String group = s.next(); hashmap.put(name, new Person(phone, email, address, group)); System.out.println(">>Please enter name"); Person ps = hashmap.get(name); System.out.println(name + ps.phone + ps.email + ps.address + ps.group); } } 이렇게 만들어봤는데 오류가 나는데 어디가 잘못된걸까요?? 오류가 나는 부분은 HashMap<name, Person> hashmap = new HashMap<name, Person>(); 여기서 name 부분인데요.. 자료를 20명치 입력받으려고 하는데 저렇게 for문을 쓰는건 맞는지요?
10/11/04 22:11
-_-;;;;;소스가 총체적 난국이네요;;;
일단 클래스 내에는 멤버변수와 변수들을 컨트롤하는 함수들만 있어야 됩니다. 그 안에 Scanner라고 쓰신거 지우시고요;;; HashMap<name, Person> hashmap = new HashMap<name, Person>(); 이것 역시 저장이 될 자료형을 기록해야 합니다. 즉 HashMap<String, Person>으로 쓰셔야 됩니다. 어쩌다가 jar.Attributes.Name이란 녀석이 추가되게 됐는지-_-;;;;
10/11/04 22:15
그리고 for는 저렇게 쓰셔도 됩니다. 뭐 어떻게 쓰건 20개만 카운트 하게 하면 되니까요...
그래도 보통은 for(int i = 0; i < 20; i++) 이런식으로 많이 쓰죠 왜 0부터 쓰냐면 과거부터 동일한 자료 여러개 저장할 때는 배열을 쓰는데 이 배열의 시작 인덱스가 0이기 때문에 0부터 시작합니다. 뭐 자바나 c# 오면서 저장하는 인덱스 관리가 쉬워져서 아무렇게나 원하는 숫자 카운팅 해도 되지만 저런 이유로 0부터 시작합니다.
10/11/04 22:24
import java.util.HashMap;
import java.util.Scanner; class Person String phone; String email; String address; String group; Person(String phone, String email, String address, String group){ this.phone = phone; this.email = email; this.address = address; this.group = group; } public class Assign6 public static void main(String[] args) { Scanner s = new Scanner(System.in); String name = new String(); HashMap<String, Person> hashmap = new HashMap<String, Person>(); for(int i = 0; i<20; i++) { System.out.println(">>Please enter a name #i"); name = s.next(); System.out.println(">>Please enter a phone number of name #i"); String phone = s.next(); System.out.println(">>Please enter an e-mail of name #i"); String email = s.next(); System.out.println(">>Please enter an address of name #i"); String address = s.next(); System.out.println(">>Please enter a group of name #i"); String group = s.next(); hashmap.put(name, new Person(phone, email, address, group)); System.out.println(">>Please enter name"); Person ps = hashmap.get(name); System.out.println(name + ps.phone + ps.email + ps.address + ps.group); } } 손 봤습니다. Name 저건 뭔지도 모르겠고 있어야 할 의미도 없어서 import서 제거합니다.
10/11/04 22:35
HashMap<String, Person> hashmap = new HashMap<Strng, Person>();
이 부분에 오타 있었습니다;;; HashMap<String, Person> hashmap = new HashMap<String, Person>(); 그리고 메인 윗부분에서 name이 선언 되어 있었는데 for 안에서 또 String name이 선언되어 있습니다. 이중 선언입니다. 이부분에서는 String 지워주시면 됩니다. 마지막으로 메인부분에 선언되어 있는 String name은 초기화가 안되어 있습니다. String name = new String(); 정도로 초기화 하시면 됩니다. 이 부분 초기화가 왜 필요하냐면 hashmap.get으로 찾을때 name을 사용하기 때문입니다. for안에서 사용될 지 않될지 모르기 때문에 초기화를 해주시면 됩니다.
|