JAVA에서 Map과 List 사용하는 방법?

조회수 1920회

현재 배우고 있는 진도는 데이터베이스를 사용하지 않습니다.

씬 빌더로 폼을 만들어 회원 가입 양식을 만들어 보려고 하는데....데이터베이스를 사용하지 않고 하려니 조금 어렵네여.

List나 Map을 이용하면 된다고 하는데....일단 이 둘의 사용이 조금 어렵습니다.

배운 내용을 이용해 사용해보려고 하는데 쉽지는 않네여.

  1. HashMap list = new ArrayList<>(); 이렇게 되면 어떤 내용인 거죠?

  2. HashMap list = new HashMap()>(); 이건 어떤 내용이죠? 구현은 가능한 양식인가요?

일단 제가 생각한 건. HashMap의 key값과 value에 들어가는 어떤 keyid가 같다면 이 아이디를 삭제, 수정할 수 있도록 하고 싶은 건데.... value에 들어가는 값이 아이디, 패스워드, 이름, 성별, 주소...등이 됩니다.

굳이 keyid를 만들어 확인할 필요가 없는 걸까요? 그냥 key값만 맞으면 수정, 삭제 혹은 로그인도 되게 하면 되는 건가요?

머리가 복잡해서 그런지 막 뒤섞인 느낌이에요 ㅜㅜㅜ 도와주세염 ㅜ

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • 우선 질문하신 내용에서 1번은 틀린 문법입니다.

    2번처럼 사용하거나 Map map = new HashMap();처럼 사용합니다. Map은 인터페이스이고, HashMap 은 구현체입니다. 다형성때문에 이렇게들 사용하죠.

    데이터베이스대신 자료구조를 사용할 경우라면 리스트보다는 맵을 사용하면 더 좋을 것 같아요.

    예를 들어 User 라는 클래스와 Database 클래스를 통해 아래와 같이 구현할 수 있겠네요. 충분히 힌트가 되었길 바랍니다!

    public class User {
        private String id;
        private String password;
    
        public getId(){
            return this.id;
        }
        //construct, get, tostring
    }
    
    public class Database {
        private static Map<String, User> users = new HashMap<String, User>();
    
        public static void addUser(User user) {
            users.put(user.getId(), user);
        }
    
        public static void removeUser(){};
        public static void updateUser(){};
        ....
    }
    
  • 정말 잘 해보고 싶으시다면 "자료구조/알고리듬"를 선학습하시기 바랍니다.

    list(linked 등등), stack, queue(de), tree, graph 하고 정렬과 검색 정도 하시면 문제없이 해결하실수 있습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)