본문 바로가기

웹 개발/Java

[Web_JAVA] 30

실습(ArrayList(1))

1. 수정

- 90을 9로 수정

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListTest<T extends Number>{
	public static void main(String[] args) {

		ArrayList<Integer> datas = new ArrayList<>();

		datas.add(10); 
		datas.add(20);
		datas.add(40);
		datas.add(50);
		datas.add(90);
		datas.add(80); 
		datas.add(70);
		datas.add(60);

		if(datas.contains(90)) {
			System.out.println(datas.set(datas.indexOf(90), 9) + "이 9로 변경되었습니다.");			
		}
		System.out.println(datas);			
		
	}
}

 

결과

 

 

 

2. 삭제(80 삭제)

- 인덱스로 삭제

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListTest<T extends Number>{
	public static void main(String[] args) {

		ArrayList<Integer> datas = new ArrayList<>();

		datas.add(10);
		datas.add(20);
		datas.add(40);
		datas.add(50);
		datas.add(90);
		datas.add(80);
		datas.add(70);
		datas.add(60); 

		if(datas.contains(80)) {
			System.out.println(datas.remove(datas.indexOf(80)) + "이 삭제되었습니다.");			
		}
		System.out.println(datas);	
		 
	}
}

 

결과
 

 

- 값으로 삭제

import java.util.ArrayList;
import java.util.Collections;

public class ArrayListTest<T extends Number>{
	public static void main(String[] args) {

		ArrayList<Integer> datas = new ArrayList<>();

		datas.add(10);
		datas.add(20);
		datas.add(40);
		datas.add(50);
		datas.add(90);
		datas.add(80);
		datas.add(70); 
		datas.add(60);

		if(datas.remove(Integer.valueOf(80))) {  // boxing
			System.out.println("삭제 성공");			
		}
		System.out.println(datas);
		
	}
}

 

결과

 

 

 

 

실습(ArrayList(2))

1. User.java 생성

- 필요한 변수 선언

// 이름
private String name;
	
// 아이디
private String id;

// 비밀번호
private String pw;

// 휴대폰 번호
private String phone;

 

 

- 생성자 생성

public User() {;}

- getter, setter 생성

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

public String getPhone() {
	return phone;
}

public void setPhone(String phone) {
	this.phone = phone;
}

 

 

 

2. UserField.java 생성

- 회원을 저장할 자료구조 선언

ArrayList<User> users = new ArrayList<>();

// private : 외부에서 접근하지 못하게 한다.
// static : 키가 한 번만 할당되게 한다.
// final : 외부에서 키값이 수정되지 못하게 한다.
private static final int KEY = 3;

 

 

- 생성자

public UserField() {
	// 테스트를 위해 등록된 user 정보를 미리 넣어놓는다.
	User user = new User();
	user.setId("hds1234");
	user.setPw("1234");
	users.add(user);
}

 

 

- 아이디 중복검사

public User checkId(String id) {
	User user = null;

	for (int i = 0; i < users.size(); i++) {

		if(users.get(i).getId().equals(id)) {  // i번째 회원의 아이디가 id와 같다면
			user = users.get(i);  // i번째 회원의 정보를 user에 담아준다.
			break;
		}

	}

	return user;
}

 

 

- 회원가입

public void join(User user) {

	user.setPw(encrypt(user.getPw()));
	users.add(user);

}

 

 

- 로그인

public boolean login(String id, String pw) {
	User user = checkId(id);

	if(user != null) {

//		if(decrypt(user.getPw()).equals(pw)) { // 양방향
		if(user.getPw().equals(encrypt(pw))) { // 단방향
			return true;
		} 

	}

	return false;
}

 

 

- 암호화

public String encrypt(String pw) {
	String enPw = "";
	
	for (int i = 0; i < pw.length(); i++) {
		enPw += (char)(pw.charAt(i) * KEY);
	}
	
	return enPw; 
}

 

 

- 복호화

public String decrypt(String enPw) {
	String dePw = ""; 
	
	for (int i = 0; i < enPw.length(); i++) {
		dePw += (char)(enPw.charAt(i) / KEY);
	}
	
	return dePw;
}

 

 

 

3. Test.java에서 실행

import java.util.Scanner; 

public class Test {
	public static void main(String[] args) {
		UserField uf = new UserField();
		User user = new User();
		
		Scanner sc = new Scanner(System.in);
		String name = null, id = null, pw = null, phone = null;
		
		System.out.print("이름 : ");
		name = sc.next();
		
		System.out.print("아이디 : ");
		id = sc.next();
		if(uf.checkId(id) != null) {
			System.out.println("중복된 아이디입니다.");
			return;  // 중복된 아이디라면 main 메소드를 종료시킨다.
		}
		
		System.out.print("비밀번호 : ");
		pw = sc.next();
		
		System.out.print("전화번호 : ");
		phone = sc.next();
		
		user.setName(name);
		user.setId(id);
		user.setPw(pw);
		user.setPhone(phone);
		
		uf.join(user);
		System.out.println("회원가입 성공");
		
		System.out.print("아이디 : ");
		id = sc.next();
		
		System.out.print("비밀번호 : ");
		pw = sc.next();
		
		if(uf.login(id, pw)) {
			System.out.println("로그인 성공");
		} else {
			System.out.println("로그인 실패");
		}
		
	}
}

 

결과

 

 

 

 

'웹 개발 > Java' 카테고리의 다른 글

[Web_JAVA] 32  (0) 2022.03.18
[Web_JAVA] 31  (0) 2022.03.17
[Web_JAVA] 29  (0) 2022.03.15
[Web_JAVA] 28  (0) 2022.03.14
[Web_JAVA] 27  (0) 2022.03.13