JAVA/chapter23_collection_framework
Test . collection_framework
GAWON
2023. 5. 31. 09:15
Q1. Test01.java
게시물을 저장하는 Board 클래스를 정의하고, ArrayList를 이용하여 3개의 게시물을 저장하시오.
1~3번 게시물번호 중 하나를 입력 받아 해당 게시물을 삭제하시오.
class Board 필드 : String title, String content, Date register
register -> 현재 날짜 자동 삽입
메소드 : 생성자, toString()
Q2. Test02.java
로또 & 빙고 (빙고가 어려우면 로또부터 해보기)
Set을 이용하여 5 X 5 Bingo 배열을 생성하시오. (1 ~ 25)
Set에 랜덤 생성 -> Bingo 2차원 배열에 저장
package org.joonzis.test;
//게시물을 저장하는 Board 클래스를 정의하고, ArrayList를 이용하여 3개의 게시물을 저장하시오.
//1~3번 게시물번호 중 하나를 입력 받아 해당 게시물을 삭제하시오.
//
//class Board 필드 : String title, String content, Date register
// register -> 현재 날짜 자동 삽입
// 메소드 : 생성자, toString()
import java.text.SimpleDateFormat;
import java.util.*;
class Board{
private String title, content;
private Date register;
public Board(String title, String content) {
this.title = title;
this.content = content;
this.register = new Date();
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("제목 : ").append(title).append("\n");
sb.append("내용 : ").append(content).append("\n");
sb.append("등록일 : ").
append(new SimpleDateFormat("yyyy년 MM월 dd일 E요일").format(register)).append("\n");
return sb.toString();
}
}
public class Test01 {
public static void main(String[] args) {
List<Board> list = new ArrayList<Board>();
list.add(new Board("1. 공지사항", "모든 회원 필독"));
list.add(new Board("2. 알림", "관리자만 필독"));
list.add(new Board("3. 요청", "모든 회원 필독"));
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i));
}
Scanner sc = new Scanner(System.in);
System.out.print("삭제할 게시물 번호 (1~3) >> ");
int num = sc.nextInt();
list.remove(num-1);
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i));
}
}
}
package org.joonzis.test;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;
//Q2. Test02.java
//로또 & 빙고 (빙고가 어려우면 로또부터 해보기)
//Set을 이용하여 5 X 5 Bingo 배열을 생성하시오. (1 ~ 25)
//Set에 랜덤 생성 -> Bingo 2차원 배열에 저장
public class Test02 {
public static void main(String[] args) {
/*
* HashSet으로 빙고 이용시 숫자 오름차순 정렬 증상
* - set의 특성상 입력 순서가 출력 순서와 같은 것은 아님
* - 적은 데이터가 일률적으로 들어갈 시 오름차순 정렬 증상 발생
* - 로또의 경우 45개의 데이터 중 6개만을 입력하여 문제 x
* - 빙고의 경우 25개의 데이터 중 25개를 그대로 사용하여 증상 발생
*/
// 1. 로또
/*
* System.out.println("<LOTTO>");
*
* Random ran = new Random(); Set<Integer> set = new HashSet<Integer>();
*
* while(set.size() < 6) { set.add(ran.nextInt(45)+1); }
*
* int[] lotto = new int[6]; Scanner sc = new Scanner(System.in); for(int i=0;
* i<lotto.length; i++) { System.out.print((i+1) + "번 숫자 입력 >> "); lotto[i] =
* sc.nextInt(); }
*
* System.out.println("로또 번호 : " + set); System.out.println("선택한 번호 : " +
* Arrays.toString(lotto));
*
*
* int cnt = 0; String resultStr = ""; Iterator<Integer> itr = set.iterator();
* while(itr.hasNext()) { int tmp = itr.next(); for(int i=0; i<lotto.length;
* i++) { if(tmp == lotto[i]) { cnt++; resultStr += lotto[i] + " "; } } }
*
* System.out.println("맞은 개수 : " + cnt); System.out.println("맞은 번호 : " +
* resultStr);
*/
// 2. 빙고
System.out.println("<BINGO>");
Random ran = new Random();
Set<Integer> set = new LinkedHashSet<Integer>();
while(set.size() < 25) {
set.add(ran.nextInt(25)+1);
}
int[][] bingo = new int[5][5];
Iterator<Integer> itr = set.iterator();
for(int i=0; i<bingo.length; i++) {
for(int j=0; j<bingo[i].length; j++) {
bingo[i][j] = itr.next();
System.out.print(bingo[i][j] + "\t");
}
System.out.println();
}
}
}