모스부호 해석하기
package study;
import java.util.Arrays;
import java.util.Scanner;
public class Study01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(morseReturn(sc.nextLine()));
// String secret = sc.nextLine();
// String s = morseReturn(secret);
// System.out.println(s);
메소드를 새로 만들어 작성한 내용
이후는 메소드 없이 처리하는 방법
// String[] morse = new String[] {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
// String secret = ".... . ... .-.. . . .--. ... . .- .-. .-.. -.--";
// String[] secretmorse = secret.split(" ");
// System.out.println(Arrays.toString(secretmorse));
// A:for (int i = 0; i < secretmorse.length; i++) {
// for (int j = 0; j < morse.length; j++) {
// if (secretmorse[i].equals(morse[j])) {
// answer += (char) (j + 'a');
// } else if (secretmorse[i].isBlank()) {
// answer += " ";
// continue A;
// }
// }
// }
}
static String morseReturn (String morse1) {
String answer = "";
String[] morse = new String[] {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
String[] secretmorse = morse1.split(" ");
A : for (int i = 0; i < secretmorse.length; i++) {
for (int j = 0; j < morse.length; j++) {
if (secretmorse[i].equals(morse[j])) {
answer += (char) (j + 'a');
} else if (secretmorse[i].isBlank()) {
answer += " ";
break; // break 혹은 continue A 해도 가능
}
}
}
return answer;
}
}
Collection
package coll;
// 컬렉션
/*
* Collection 하위
* List(I) : 순서 O, 중복 O
* Set(I) : 순서 X, 중복 X
*
* Map(I) : Key, Value 형식으로 저장 = 딕셔너리 형태, 순서 X, Key 중복 X, Value 중복 O
*
*/
public class Coll01 {}
List 의 메소드 알아보기
package coll;
import java.util.ArrayList;
import java.util.List;
public class List01 {
public static void main(String[] args) {
// 부모클래스 자식클래스
List<String> list = new ArrayList<>();
list.add("홍길동");
list.add("김길동");
list.add("이길동");
list.add("박길동");
list.add("홍길동");
System.out.println(list.size()); // 5
System.out.println(list.get(0)); // 배열의 처음 값 출력
System.out.println(list.get(list.size() - 1)); // 배열의 마지막 값 출력
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
list.add(1, "황길동"); // list 1 번 인덱스에 값 추가
System.out.println(list); // [홍길동, 황길동, 김길동, 이길동, 박길동, 홍길동]
// 새로운 컬렉션
List<String> list2 = new ArrayList<>();
list2.add("데이비드");
list2.add("워쇼스키");
list2.add("바이든");
// 두개의 list 를 하나로 합치기
list.addAll(list2);
System.out.println(list); // [홍길동, 황길동, 김길동, 이길동, 박길동, 홍길동, 데이비드, 워쇼스키, 바이든]
System.out.println(list.contains("데이비드")); // false, boolean 값 리턴
System.out.println(list.contains("당근쿤")); // true
System.out.println(list.containsAll(list2)); // true, list2 의 값 전체가 포함된 여부 확인
list.indexOf("홍길동"); // 0, 값이 처음으로 위치한 index 값 출력
System.out.println(list.lastIndexOf("데이비드")); // 6, 값이 마지막으로 위치한 index 값 출력
System.out.println(list.lastIndexOf("홍길동")); // 5, 값이 마지막으로 위치한 index 값 출력
Object[] a = list.toArray(); // object[] 반환
List<String> sList = list.subList(3,5);
System.out.println(sList); // [이길동, 박길동], 3 번 index ~ 5 번 index 이전까지
}
}
Set, Iterator
package coll;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Set01 {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("홍길동");
set.add("김길동");
set.add("이길동");
set.add("박길동");
set.add("홍길동");
System.out.println(set); // [박길동, 김길동, 홍길동, 이길동], 중복 자동 제거
for(String s : set) {
System.out.println(s);
}
ArrayList<String> list = new ArrayList<>(set); // set 에 저장된 값 list 변환
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// Iterator
Iterator<String> iterator = set.iterator(); // set 의 값 Iterator 저장
while (iterator.hasNext()) { // iterator 에 다음 값의 여부 판별
System.out.println(iterator.next()); // iterator 에 저장된 다음 값 출력
}
}
}
TreeSet, LinkedHashSet
package coll;
import java.util.LinkedHashSet;
import java.util.TreeSet;
public class Set02 {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>();
for (int i = 0; i < 6; i++) {
treeSet.add((int) (Math.random() * 45 + 1));
}
System.out.println(treeSet); // TreeSet 은 기본 오름차순으로 정렬
LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>();
for (int i = 0; i < 6; i++) {
int number = (int) (Math.random() * 45 + 1);
System.out.print("뽑힌 숫자 : " + number + " ");
linkedHashSet.add(number);
}
System.out.println();
System.out.println(linkedHashSet);
// 뽑힌 숫자 : 14 뽑힌 숫자 : 7 뽑힌 숫자 : 8 뽑힌 숫자 : 25 뽑힌 숫자 : 29 뽑힌 숫자 : 4
// [14, 7, 8, 25, 29, 4]
// linkedHashSet 에 저장된 순서대로 저장 및 출력
}
}
Map, HashMap, TreeMap, HashTable
package coll;
import java.util.*;
/*
* Map : Key : Value 로 저장. Key 는 중복 X, 순서 X
*
* HashMap : 정렬이 없음, Key 중복 없음, Null 허용
*
* TreeMap : Key 값 들이 정렬되어 있음, 중복 없음, Null 없음
*
* HashTable : 멀티 스레드 환경에서 사용
* 하나의 스레드가 실행을 완료해야 다른 스레드를 실행
*/
public class Map01 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("수원", "왕갈비통닭");
map.put("제주", "갈치");
map.put("서울", "?");
map.put("평양", "냉면");
map.put("함흥", "냉면");
map.put("이천", "반도체");
System.out.println(map);
// {수원=왕갈비통닭, 이천=반도체, 평양=냉면, 서울=?, 함흥=냉면, 제주=갈치}
System.out.println(map.get("이천")); // 반도체, Key 로 Value 값 출력
System.out.println(map.containsKey("나주")); // Key 값의 여부 출력, boolean 타입
System.out.println(map.containsValue("반도체")); // Value 값 여부 출력, boolean 타입
Set<String> key = map.keySet(); // map 의 Key 값만 저장
System.out.println(key); // [수원, 이천, 평양, 서울, 함흥, 제주]
Set<String> value = new HashSet<>(map.values()); // map 의 value 값 저장
System.out.println(value); // [반도체, 갈치, 왕갈비통닭, 냉면, ?]
List<String> list = new ArrayList<>(map.keySet());
System.out.println(list);
for (int i = 0; i < map.size(); i++) {
System.out.println(list.get(i) + " : " + map.get(list.get(i)));
}
// List<String> list2 = new ArrayList<>(map.values());
// System.out.println(list2);
}
}
Map 과 List 의 결합
package coll;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test02 {
public static void main(String[] args) {
List<Map<String, String>> list = new ArrayList<>();
Map<String, String> map = new HashMap<>();
map.put("no", "1");
map.put("title", "첫번째 글");
map.put("write", "poseidon");
map.put("date", "2023-12-20");
map.put("like", "5");
list.add(map);
map = new HashMap<>();
map.put("no", "2");
map.put("title", "두번째 글");
map.put("write", "hong");
map.put("date", "2023-12-21");
map.put("like", "5");
list.add(map);
map = new HashMap<>();
map.put("no", "3");
map.put("title", "세번째 글");
map.put("write", "kim");
map.put("date", "2023-12-22");
map.put("like", "6");
list.add(map);
map = new HashMap<>();
map.put("no", "4");
map.put("title", "네번째 글");
map.put("write", "han");
map.put("date", "2023-12-23");
map.put("like", "7");
list.add(map);
map = new HashMap<>();
map.put("no", "5");
map.put("title", "다섯번째 글");
map.put("write", "lee");
map.put("date", "2023-12-24");
map.put("like", "15");
list.add(map);
System.out.println(map.get("no"));
System.out.println(list.size()); // 5
System.out.println("--------------------");
// for (int i = 1; i <= list.size(); i++) {
// System.out.println(list.get(Integer.parseInt(map.get("no")) - i));
// System.out.println(list.get(i-1));
// }
System.out.println("번호 | 제목 | 글쓴이 | 날짜 | 좋아요");
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i).get("no") + "\t ");
System.out.print(list.get(i).get("title")+ "\t");
System.out.print(list.get(i).get("write")+ " \t");
System.out.print(list.get(i).get("date")+ " \t");
System.out.println(list.get(i).get("like"));
}
}
}
새로운 클래스를 만들어 List 생성 및 조회하기
package coll;
import java.util.ArrayList;
import java.util.List;
class Board { // 데이터 전송 객체 : DTO, (Data Trans Object)
private int no, like;
private String title, write, date;
public Board(int no, int like, String title, String write, String date) {
this.no = no;
this.like = like;
this.title = title;
this.write = write;
this.date = date;
}
public int getNo() {
return no;
}
public int getLike() {
return like;
}
public String getTitle() {
return title;
}
public String getWrite() {
return write;
}
public String getDate() {
return date;
}
}
public class List03 {
public static void main(String[] args) {
List<Board> list = new ArrayList<>();
// list.add(new Board(1, 51, "제목1", "글쓴이1", "날짜1"));
// list.add(new Board(2, 52, "제목2", "글쓴이2", "날짜2"));
// list.add(new Board(3, 53, "제목3", "글쓴이3", "날짜3"));
// list.add(new Board(4, 54, "제목4", "글쓴이4", "날짜4"));
// list.add(new Board(5, 55, "제목5", "글쓴이5", "날짜5"));
// System.out.println(list); // 주소 값만 출력
Board board1 = new Board(1, 51, "제목1", "글쓴이1", "날짜1");
Board board2 = new Board(2, 52, "제목2", "글쓴이2", "날짜2");
Board board3 = new Board(3, 53, "제목3", "글쓴이3", "날짜3");
Board board4 = new Board(4, 54, "제목4", "글쓴이4", "날짜4");
Board board5 = new Board(5, 55, "제목5", "글쓴이5", "날짜5");
list.add(board1);
list.add(board2);
list.add(board3);
list.add(board4);
list.add(board5);
System.out.println(list); // 이것도 주소 값만 출력
// [coll.Board@1e643faf, coll.Board@6e8dacdf, coll.Board@7a79be86, coll.Board@34ce8af7, coll.Board@b684286]
// System.out.println(list.get(0).no); // 1
// for (int i = 0; i < list.size(); i++) {
// System.out.print(list.get(i).no + "\t");
// System.out.print(list.get(i).like + "\t");
// System.out.print(list.get(i).title + "\t");
// System.out.print(list.get(i).write + "\t");
// System.out.println(list.get(i).date + "\t");
// } // private 이전 사용
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i).getNo() + "\t");
System.out.print(list.get(i).getLike() + "\t");
System.out.print(list.get(i).getTitle() + "\t");
System.out.print(list.get(i).getWrite() + "\t");
System.out.println(list.get(i).getDate());
}
}
}
'JAVA' 카테고리의 다른 글
231227 Java (0) | 2023.12.27 |
---|---|
231226 Java (0) | 2023.12.26 |
231221 Java (2) | 2023.12.21 |
231220 Java (0) | 2023.12.20 |
231219 Java (0) | 2023.12.19 |