<14:30 5교시>
package test.main;
import java.util.HashMap;
public class MainClass07 {
public static void main(String[] args) {
/*
* HashMap<key type, value type>
*
* key type은 일반적으로 String type을 가장 많이 사용함
* value type은 담고 싶은 데이터의 type을 고려해서 저장하면 됨
* value type을 object로 지정하면 어떤 데이타타입이던지 다 담을 수 있음
* 순서가 없는 데이터를 다룰 때 사용하면 됨
* dto클래스 대신에 사용하기도 함
*/
HashMap<String, Object> map=new HashMap<>();
map.put("num",1);
map.put("name", "김구라");
map.put("isMan", true);
//value의 generic 클래스가 Object 이기 때문에 object 타입이 리턴된다.
int num=(int)map.get("num");//원래 타입으로 캐스팅이 필요
String name =(String)map.get("name");
boolean isMan = (boolean)map.get("isMan");
//동일한 key 값으로 다시 담으면 수정
map.put("name", "이정호" );
//특정 key 값으로 담긴 내용 삭제
map.remove("isMan");
//모두 삭제
map.clear();
}
}
package test.main;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class MainClass08 {
public static void main(String[] args) {
//hashmap 객체를 생성해서 map 인터페이스 타입 변수에 담기
Map<String, String> dic = new HashMap<>();
//key:value의 쌍을 사전형태(dictionary)라고도 함
dic.put("house", "집");
dic.put("phone", "전화기");
dic.put("watch", "시계");
Scanner scan = new Scanner(System.in);
System.out.println("단어입력:");
String word=scan.nextLine();
//단어에 해당하는 뜻 얻어내기
String mean=dic.get(word);
if (mean==null) {
System.out.println("찾는 단어가 없습니다.");
}else {
//출력하기
System.out.println(word+"의 뜻은 " +mean+"입니다.");
}
}
}
예제
//1. 세명의 회원정보(번호,이름,주소)를 해쉬맵 객체를 생성해서 담아보세요
//HashMap 객체 하나당 한명의 회원정보를 담으니깐 총 3개의 Hashmap 객체가 생성돼야 함.
//2. 위에서 생성한 HashMap 객체를 담을 ArrayList 객체를 생성해보세요
//3. ArryList 객체에 Hashmap 객체 3개를 담아보세요
//4. 반복문 돌면서 ArrayList에 담긴 회원정보를 콘솔창에 보기 좋게 출력해보세요.
<15:30 6교시>
으어억 졸려 살려줘
간신히 잠깨서 예제 답 따라 했다... 휴.. 오늘은 집가면서 다시보고 공부해야겠다..
package test.main;
import java.util.HashSet;
import java.util.Set;
/*
* HashSet은 Set 인터페이스를 구현한 클래스이다
* -순서가 없다
* -key값도 없다
* -중복을 허용하지 않는다
* -어떤 data를 묶음(집합)으로 관리하고자 할 때 사용한다
*/
public class MainClass10 {
public static void main(String[] args) {
//정수를 저장할 수 있는 hashset 객체를 생성해서 참조값을 set 인터페이스 type 지역변수에 담기
Set<Integer> set1=new HashSet<>();
set1.add(10);
set1.add(20);
set1.add(20);
set1.add(30);
set1.add(30);
//문자열을 저장할 수 있는 HashSet 객체
Set<String> set2=new HashSet<>();
set2.add("kim");
set2.add("lee");
set2.add("park");
set2.add("lee");
set2.add("park");
//set 객체에 저장된 모든 아이템을 순서를 보장할 수는 없지만 모두 참조해서 사용해보기
set1.forEach((item)->{System.out.println(item);});
System.out.println("------1번구간-----");
set2.forEach((item)->{System.out.println(item);});
//특정 item(데이터, 참조값) 존재 여부 알아내기
boolean isContain=set2.contains("lee");
//저장된 item의 갯수
int size = set2.size();
//특정 item의 삭제
set2.remove("park");
//모든 item 삭제
set2.clear();
}
}
package test.main;
import java.util.ArrayList;
import java.util.List;
public class MainClass11 {
public static void main(String[] args) {
List<Integer> nums=new ArrayList<>();
nums.add(10);
nums.add(20);
nums.add(30);
//readonly로 사용할거라면 위의 세줄을 아래와 같이 사용할 수도 있다.
List<Integer> nums2=List.of(10,20,30);
//nums2.add(40); //아이템 추가 불가
//nums2.remove(0);//삭제 불가
//nums2.set(0,999);//수정 불가
}
}
package test.main;
import java.util.HashMap;
import java.util.Map;
public class MainClass12 {
public static void main(String[] args) {
Map<String, String> map1 = new HashMap<>();
map1.put("house", "집");
map1.put("phone", "전화기");
map1.put("watch", "시계");
Map<String, String> map2= Map.of("house", "집", "phone", "전화기", "watch", "시계");
// map2.put("mouse", "쥐");//추가 불가
// map2.remove("watch"); // 삭제 불가
}
}
package test.main;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class MainClass13 {
public static void main(String[] args) {
Set<Integer> set= new HashSet<>();
set.add(10);
set.add(10);
set.add(20);
set.add(20);
set.add(30);
set.add(20);
set.add(40);
//중복이 제거된 Set를 ArrayList 객체의 생성자에 전달해서 객체 생성하기
List<Integer> list=new ArrayList<>(set);
//저장된 숫자를 오름차순으로 정렬
Collections.sort(list);
//내림 차순 정렬
//Collections.sort(list, Collections.reverseOrder());
list.forEach((item)->{System.out.println(item);});
}
}
<16:30 7교시>
그동안 배운거 활용해서 퀴즈 풀어보기
는 1번 빼고 하나도 못했다...
Random 객체 생성하기 까먹고 나니까 오늘 간신히 따라한거 적용하기도 어렵더라.
내가
package test.main;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class QuizMain {
public static void main(String[] args) {
//1. 정수를 담을 수 있는 어레이 리스트 객체를 생성해서 nums 라는 지역변수에 담기
ArrayList<Integer> nums = new ArrayList<>();
//2. 반복문 10번 돌면서 1~100 사이의 랜덤한 정수를 각각 얻어내서 1에서 생성한 nums 객체에 순서대로 담기
//랜덤한 정수를 얻어낼 객체
Random ran = new Random();
//반복문을 10번돌도록 구성
for (int i=0; i<10;i++) {
//1~100 사이의 랜덤한 정수 얻기
int ranNum= ran.nextInt(100)+1;
nums.add(ranNum);
}
//3. nums에 저장된 숫자에서 중복된 숫자가 제거된 새로운 ArrayList 객체를 얻어내 보기
/*Set<Integer> set= new HashSet<>();
//set 객체에 숫자를 넣으면 중복이 제거된다
nums.forEach((item)->{set.add(item);});
//중복이 제거된 Set를 이용해서 다시 arraylist 객체 생성
List<Integer> result=new ArrayList<>(set);*/
Set<Integer> set= new HashSet<>(nums);
List<Integer> result=new ArrayList<>(set);
//4. 새로운 배열에 숫자를 오름차순으로 정렬해보기
Collections.sort(result);
//5. 새로운 배열에 저장된 숫자를 순서대로 콘솔창에 출력해보기
result.forEach((item)->{System.out.println(item);});
}
}
로또 번호 생성기 ㅋㅋ
package test.main;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class QuizMain2 {
public static void main(String[] args) {
//1. 로또 번호 담을 HashSet 객체 생성해서 set1이라는 지역 변수에 담기
Set<Integer> set1 = new HashSet<>();
//2. while 문을 이용해서 랜덤한 로또 번호를 set1에 반복적으로 담아 보세요.
//while문 탈출 조건은 set1.size()가 6이 되면 탈출되도록 해보기
Random ranlot = new Random();
while (true) {
for(int i=0; i<set1.size(); i++) {
//1~45 사이의 랜덤한 숫자를 얻어서
int nums =ranlot.nextInt(45)+1;
//Set 객체에 담는다
set1.add(nums);
}
//만일 Set의 크기가 6이면
if (set1.size()==6) {
break;//반복문 탈출
}
}
//3. set1에 담긴 번호를 오름 차순으로 정렬해서 콘솔창에 모두 출력해보세요
List<Integer> number = new ArrayList<>(set1);
Collections.sort(number);
for(Integer tmp:number) {
System.out.println(tmp);
}
}
}
<17:30 8교시>
예제 풀기
* 1. test.mypac.PostDto 클래스를 만들어 보세요
* PostDto 에는 글번호, 작성자, 제목을 담을수 있어야 합니다.
* 즉 3개의 필드를 만드세요
* 필드명은 마음데로, 필드의 data type 은 잘 생각해서 결정
* dto 작성 규약에 맞게 만들어 주세요( eclipse generate 기능 활용)
* test.mypac 페키지에 만들기
*
* 2. PostDto 객체에 임의의 글 3개의 정보를 담아 보세요.
* 총 3개의 PostDto 객체가 생성이 되어야 합니다.
*
* 3. PostDto 객체를 담을수 있는 ArrayList 객체를 생성해서 위에서 생성한 PostDto
* 객체를 ArrayList 에 담아 보세요.
*
* 4. 반복문 돌면서 ArrayList 에 담긴 글 목록을 콘솔창에 이쁘게 출력해 보세요.
*
일단 맨땅에 헤딩해보기
package test.mypac;
public class PostDto {
private int num;
private String writer;
private String title;
public PostDto() {}
public PostDto(int num, String writer, String title) {
this.num=num;
this.writer=writer;
this.title=title;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
'공부의 기록 > 자바 풀 스택 : 수업내용정리' 카테고리의 다른 글
자바 풀 스택 12/24 오후 기록 024-2 (0) | 2024.12.24 |
---|---|
자바 풀 스택 12/24 오전 기록 024-1 (0) | 2024.12.24 |
자바 풀 스택 12/23 오전 기록 023-1 (0) | 2024.12.23 |
자바 풀 스택 12/20 오후 기록 022-2 (1) | 2024.12.20 |
자바 풀 스택 12/20 오전 기록 022-1 (1) | 2024.12.20 |