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

2024. 5. 16. 17:22·JAVA

문제 설명:

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

해결 방법:

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();
		
	}

}

실행 결과_______

'JAVA' 카테고리의 다른 글

[JAVA] 로그와 파일 저장  (0) 2024.05.21
[JAVA] 파일복사(문자기반 입/출력), ZIP파일로 압축  (0) 2024.05.21
[JAVA] 도전! - 영화 평점 관리 시스템  (0) 2024.05.16
간단한 RPG 게임 만들기 (기초단계1 --> 코드 완성X)  (0) 2024.04.16
[JAVA] 형 변환 문제 (할인율)  (0) 2024.04.16
'JAVA' 카테고리의 다른 글
  • [JAVA] 로그와 파일 저장
  • [JAVA] 파일복사(문자기반 입/출력), ZIP파일로 압축
  • [JAVA] 도전! - 영화 평점 관리 시스템
  • 간단한 RPG 게임 만들기 (기초단계1 --> 코드 완성X)
미로910
미로910
개발자를 꿈꾸는 민경이의 기록 블로그
  • 미로910
    개발 note
    미로910
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 설치 메뉴얼
      • HTML
      • JAVA
        • Java 기초
        • Java 응용
        • 자료구조
        • HTTP
        • JSP 프로그래밍
      • MySQL
        • MySQL 기본
        • 1일 1쿼리
      • CSS
      • Spring boot
      • JS
        • 게시판 만들기
      • Git
      • Flutter
        • MVVM 활용
        • 심화 버전
        • 1일 1 Flutter
      • 디자인 패턴의 활용
      • error note
      • My Project
        • [졸작] LLM 기반 특허 유사도 분석 시스템
        • 도서 관리 프로그램 (final project)
        • amigo
        • 친구 매칭 프로그램(FMP)
      • Python
      • 딥러닝
      • 네트워크
      • 공부 노트
        • 연구회
        • 자료구조
      • 기타
  • 블로그 메뉴

    • 홈
    • 전체보기
    • -----------------------
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
미로910
[JAVA] 도전! - 회원 가입 순서 기록 및 조회 시스템
상단으로

티스토리툴바