JAVA 18일차(221116)

점햠미·2022년 11월 16일
0

JATBAP'S JAVA

목록 보기
18/22
post-thumbnail

1. 콜렉션 프레임워크란?


출처 : https://luckyguystory.tistory.com/20

2. ArrayList 와 LinkedList 의 장단점은?



출처 : https://luckyguystory.tistory.com/20

3. Scanner 클래스로 -1이 입력될 때까지 양의 정수를 입력 받아 저장(List)하고 검색하여 가장 큰 수를 출력하는 프로그램을 작성하라.

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/* Scanner 클래스로 -1이 입력될 때까지 양의 정수를 입력 받아 
저장(List)하고 검색하여 가장 큰 수를 출력하는 프로그램을 작성하라. */
// めっちゃ難しいね…
public class ScannerList {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println
        ("정수 입력. 종료를 원하시면 -1을 입력하세요.");

		List<Integer> list = new ArrayList<Integer>();
		
		int num = 0;
		while(num != -1) {
			num = sc.nextInt();
			list.add(num);
		}
		System.out.println("입력을 종료합니다.");
		sc.close();
		
		int maxNum = 0;
		for (int i = 0; i < list.size(); i++) {
			if(list.get(i) > maxNum) {
				maxNum = list.get(i);
			}
		}
		System.out.println("가장 큰 수는 " + maxNum);
	}
}

혼자 스스로 해보려고 하다가 안돼서 강사님꺼 보고 따라햇어요... 제가 할 수 있는건 -1 누르면 종료되게하기뿐.....

4. 로또 프로그램을 작성하시오.(Set 으로)

import java.util.HashSet;
import java.util.Set;

public class LottoCollection {
	public static void main(String[] args) {

		//Set<Integer> lottoSet = new HashSet<Integer>();		
		Set<Integer> lottoSet = new HashSet<>();
		// 위 아래 둘 다 상관 X. 걍 인티저인데 스트링넣고 이런거만 안하면 됨.

		while(lottoSet.size() != 6) {
			int num = (int)(Math.random()*46 + 1);
			lottoSet.add(num);
		}

		for (int num : lottoSet) {
			System.out.print(num + " ");
		}
	}
}

5. Set에 대하여 설명하시오.


출처 : https://luckyguystory.tistory.com/20

6. 출력이 아래와 같이 나오도록 하시오(필수) ⭐️

HashSet<Num> set = new HashSet<>();
set.add(new Num(7799));
set.add(new Num(9955));
set.add(new Num(7799));

System.out.println("인스턴스 수: " + set.size());

for(Num n : set)
     System.out.print(n.toString() + '\t');

System.out.println();

/*
====출력
인스턴스 수: 2
7799	9955
*/
import java.util.HashSet;

class Num1 {
	private int num;

	public Num1(int n) {
		num = n;
	}

	@Override
	public String toString() {
		return String.valueOf(num);
	}

	@Override
	public int hashCode() {
		System.out.println("hashCode()");
		return num % 13;
	}

	@Override
	public boolean equals(Object obj) {
		System.out.println("equals");

		if(num == ((Num1)obj).num)
			return true;
		else
			return false;
	}    
}

class HashSetEquality {
	public static void main(String[] args) {    
		HashSet<Num1> set = new HashSet<>();

		set.add(new Num1(7799));
		set.add(new Num1(9955));
		set.add(new Num1(7799));

		System.out.println("인스턴스 수: " + set.size());

		for(Num1 n : set)
			System.out.print(n.toString() + '\t');

		System.out.println();
	}
}

7. Set 호출되는 원리와 순서를 설명하시오.


출처 : https://luckyguystory.tistory.com/20

8.아래와 같이 출력되도록 하시오.

HashSet<Person> hSet = new HashSet<Person>();
hSet.add(new Person("LEE", 10));
hSet.add(new Person("LEE", 10));
hSet.add(new Person("PARK", 35));
hSet.add(new Person("PARK", 35));

System.out.println("저장된 데이터 수: " + hSet.size());
System.out.println(hSet);

/*
============
저장된 데이터 수: 2
[LEE(10세), PARK(35세)]
*/
import java.util.HashSet;

class Person2{
	private String name;
	private int age;
	
	public Person2(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return name+"("+age+"세)";
	}
	
	@Override
	public int hashCode() {
		return age;
	}

	@Override
	public boolean equals(Object obj) {

		if(name == ((Person2)obj).name && age == ((Person2)obj).age)
			return true;
		else
			return false;
	} 
}
public class PersonName {
	public static void main(String[] args) {

	HashSet<Person2> hSet = new HashSet<Person2>();
	hSet.add(new Person2("LEE", 10));
	hSet.add(new Person2("LEE", 10));
	hSet.add(new Person2("PARK", 35));
	hSet.add(new Person2("PARK", 35));

	System.out.println("저장된 데이터 수: " + hSet.size());
	System.out.println(hSet);

	/*
	============
	저장된 데이터 수: 2
	[LEE(10세), PARK(35세)]
	 */
	}
}

모르겠어서 강사님꺼 보고 참고했는데 어렵스기루..

profile
인생 망함 개조빱임

2개의 댓글

comment-user-thumbnail
2022년 11월 18일

6번 뽀려가욘

1개의 답글