실습(ArrayList 총정리)
1. 회원가입, 로그인, 회원정보 검색이 가능한 프로그램 만들기
※ 회원 1명에 대한 정보 : User 객체 , 각각의 회원 정보 : ArrayList에 저장
(1) User.java에 회원 정보 출력 메소드 및 Getter와 Setter 생성
public class User {
private String name;
private String id;
private String pw;
public void show() {
System.out.println("-----회원정보-----");
System.out.println("이름 : " + this.name);
System.out.println("id : " + this.id);
System.out.println("pw : " + this.pw);
System.out.println(); // 줄바꿈
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
}
(2) ArrayListTask.java에서 회원가입, 로그인, 회원정보 검색이 가능한 프로그램 작성
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListTask {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<User> list = new ArrayList<>();
while(true) {
System.out.println("1. 회원가입하기");
System.out.println("2. 로그인하기");
System.out.println("3. 회원정보보기");
System.out.println("4. 나가기");
System.out.print("입력 >> ");
int choice = Integer.parseInt(sc.nextLine());
if(choice == 4) { // 나가기
break;
} else if(choice == 1) { // 회원가입하기
boolean flag = false;
System.out.print("id : ");
String id = sc.nextLine();
for(int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)) {
// 이미 회원가입한 회원 중에 같은 id가 존재한다
flag = true; // flag에 true를 담아준다.
break;
}
}
// for문이 끝나고 flag에 true가 담겨있다는 소리는 중복되는 아이디라는 의미이다.
if(flag) { // id가 중복될 때
// 회원가입 실패
System.out.println("회원가입 실패 : id 중복");
} else { // id가 중복되지 않을 때
User u = new User();
u.setId(id);
System.out.print("pw : ");
u.setPw(sc.nextLine()); // u.pw = sc.nextLine() → pw가 private이기 때문에 setPw()를 이용한다.
System.out.print("이름 : ");
u.setName(sc.nextLine()); // u.name = sc.nextLine() → named이 private이기 때문에 setName()을 이용한다.
list.add(u);
System.out.println("회원가입 성공");
}
} else if(choice == 2) { // 로그인하기
// 아이디와 비밀번호 입력받기
boolean flag = false;
System.out.print("id : ");
String id = sc.nextLine();
System.out.print("pw : ");
String pw = sc.nextLine();
// list 안에서 아이디와 비밀번호가 같은 객체 찾기
for(User user : list) {
// 첫 반복 때 user : getId(0)
if(user.getId().equals(id) && user.getPw().equals(pw)) {
// 찾았다면 000님 로그인을 환영합니다 출력
System.out.println(user.getName() + "님 환영합니다.");
flag = true;
break;
} else {
}
}
if(!flag) { // flag == false
// 없다면 로그인 실패
System.out.println("로그인 실패 : 아이디 또는 비밀번호 오류");
}
} else if(choice == 3) { // 회원정보보기
boolean flag = false;
System.out.print("id : ");
String id = sc.nextLine();
for (User user : list) {
if(user.getId().equals(id)) {
user.show();
flag = true;
break;
}
}
if(!flag) {
System.out.println("검색 결과를 찾을 수 없습니다.");
}
} else {
}
}
}
}



