상세 컨텐츠

본문 제목

[JAVA] 도전! - 회원 가입 순서 기록 및 조회 시스템

JAVA

by 미로910 2024. 5. 16. 17:22

본문

문제 설명:

사용자들이 웹사이트에 가입한 순서대로 회원 정보를 기록하고, 가입한 순서를 기준으로 회원을 조회하는 시스템을 구현하고자 합니다. 사용자는 이름과 이메일 주소로 구성되며, 시스템은 사용자가 가입한 순서대로 정보를 저장해야 합니다. 사용자를 조회할 때는 가입한 순서대로 출력해야 하며, 특정 사용자의 정보를 업데이트할 수 있어야 합니다.

해결 방법:

LinkedHashMap을 사용하여 사용자의 가입 순서를 유지하면서 사용자 정보를 저장합니다. LinkedHashMap은 요소가 추가된 순서대로 요소를 저장하고 반환하는 특성이 있어 이 문제에 적합합니다.

 

import java.util.LinkedHashMap;
import java.util.Map;

public class UserRegistrantionSystem {

	private Map<String, User> users = new LinkedHashMap<>();

	// 정적 내부 클래스를
	static class User {

		String name;
		String email;

		public User(String name, String email) {
			this.name = name;
			this.email = email;

		}

		@Override
		public String toString() {
			return "이름 : " + name + " , 이메일 : " + email;
		}

	} // end of inner User class

	// 사용자 등록 기능
	public void addUser(String name, String email) {
		// key, value(User)
		users.put(email, new User(name, email));
	}
	
	// 사용자들 출력 기능
	public void displayUsers() {
		for(User user : users.values()) {
			System.out.println(user);
		}
	}
	
	
	
	// 코드 테스트(메인 함수)
	public static void main(String[] args) {
		
		UserRegistrantionSystem system = new UserRegistrantionSystem();
		// 스캐너
		User user1 = new User("홍길동", "a@naver.com");
		User user2 = new User("홍길동2", "b@naver.com");
		User user3 = new User("홍길동3", "c@naver.com");
		
		system.addUser(user1.name, user1.email);
		system.addUser(user2.name, user2.email);
		system.addUser(user3.name, user3.email);
		
		// Map 구조는 기본적으로 순서를 보장하지 않지만 LinkedHashMap을 사용해서 해결
		// 가입한 순서대로 출력하는지 확인
		system.displayUsers();
		
	}

}

실행 결과_______

관련글 더보기