💡람다식 람다식 (Lambda Expression)은 기존에 하던 작업을 편리하고 간결하게 만들어주는 기술로, 함수형 프로그래밍 개념을 자바에 도입한 것이다. 주로 컬렉션 조작을 위해 스트림(Stream)과 함께 사용되며, 람다식을 사용하면 코드의 양을 줄이고 작업을 더 효율적으로 처리할 수 있다. 람다식의 형식 인터페이스 변수 = (매개변수) -> { // 실행 코드 }; 람다식의 구성 요소 매개변수(Parameter): 메서드의 매개변수와 동일한 역할을 한다. 화살표(->): 코드 블럭을 호출하는 역할을 한다. 실행 코드(Block): 메소드의 본문과 같은 역할을 하며, 중괄호 내에 실제 작업 내용을 작성한다. MyInterface를 구현한 객체를 살펴보며 람다식을 이해해 보도록 하자. // 실명 클..
💡TreeMap Class HashMap은 정렬이 안 되는 반면, TreeMap은 정렬이 된다는 차이가 있다. Tree 구조는 이진 탐색 트리로 자동 정렬이 되며, Map은 키 + 값의 연관 배열로 배열을 사용하는 것을 의미한다. TreeMap 클래스의 활용 TreeMap 선언하기 TreeMap map = new TreeMap(); 요소 추가하기 map.put("white", "흰색"); map.put("black", "검정"); map.put("red", "빨강"); map.put("yellow", "노랑"); map.put("blue", "파랑"); map.put("green", "초록"); map.put("orange", "주황"); 요소 확인하기 System.out.println(map.size(..
💡TreeSet Class Tree 구조는 이진 트리 구조(이진 탐색 트리, BinarySearch Tree)를 의미하며, Set은 순서가 없고 중복값을 가지지 않음을 의미한다. 그런데 Tree 구조는 정렬이 되어 있다는 특징이 있다. TreeSet Class는 값을 비교해서 작으면 왼쪽에 방을 만들고, 크면 오른쪽에 방을 만든다. 그래서 들어가는 숫자의 순서에 따라 트리 구조가 이쁘게 만들어질 수도, 안 이쁘게 만들어질 수도 있다. Hash 알고리즘은 무언가를 찾을 때 굉장히 빠르다. 그래서 HahsSet이 보편적으로 사용하는 Set이지만, 순서가 정렬된 Set이 필요할 때 Tree 구조를 사용한다. TreeSet 클래스의 활용 TreeSet 배열 생성 HashSet set1 = new HashSet(..
💡LinkedList Class Collection(I) > List(I) > ArrayList(C), LinkdedList(C) ArrayList vs LinkedList ArrayList와 LinkedList는 겉으로 보기에 사용법은 같지만, 내부 구조가 완전히 다르다. 이때 내부 구조가 다르다는 말은 사용 목적이 다르다는 의미이다. LinkedList Class 종류 1. LinkedList 일방통행 구조이므로 앞으로만 갈 수 있다. 첫 번째 값을 확인할 수 있으면서 두 번째 값의 주소도 알아낼 수 있다는 특징이 있다. 2. Double LinkedList 양방향 통행이 가능한 구조로, 앞 뒤로 갈 수 있다. 3. Double Circle LinkedList 양방향 통행이 가능하며, 처음과 끝을 연..
💡익명클래스 class MyComparator implements Comparator{ @Override public int compare(Integer o1, Integer o2) { if (o1 > o2) { return 1; } else if (o1 양수 반환 > 1을 반환하는 경우가 많음 b. o2가 더 크면 > 음수 반환 > -1 c. 같으면 > 0 반환 2. 내림차순 a. o1이 더 크면 > 음수..
💡쓰기 스트림 FileOutputStream class > FileWriter class > BufferedWriter class 우리가 사용하는 대부분의 스트림은 일방통행이며, 내뱉기만 하는 빨대가 따로 있고, 들이마시는 빨대가 따로 있다. 양방향인 스트림보다 단방향인 스트림이 더 안정적이고 효율적이기 때문에 구분하여 사용하는 편이다. FileOutputStream Class try { File file = new File("C:\\Class\\code\\java\\file\\list.txt"); FileOutputStream stream = new FileOutputStream(file); stream.write(65); // A stream.write(66); // B stream.write(67)..
💡인코딩 (Encoding) 인코딩은 문자 코드(자바 데이터)를 부호화(1,0)하는 작업으로, 이때 부호화란 1과 0으로 바꾸는 작업을 의미한다. 부호화를 예로 들면 자바 프로그램에서 "홍길동"을 저장하려고 할 때, 텍스트 파일을 '100110111010'과 같은 숫자 형태로 저장하는 것이다. 💡디코딩 (Decoding) 디코딩은 부호화 데이터를 문자 코드로 변환하는 작업, 즉 1과 0으로 된 데이터를 읽어서 우리가 쓰는 형태의 데이터로 바꾸는 작업을 한다. 💡인코딩 / 디코딩 규칙 문자를 1과 0로 바꾸려면 어떤 문자를 1과 0으로 바꿀 건지 규칙을 만들어야 하는데, 국가마다 쓰는 표현이나 관계들이 복잡하게 얽혀있다 보니 많은 규칙이 만들어지게 되었다. 규칙의 특징에 있어서 주목해야 하는 정보는 byt..
자바 프로그램에서 외부의 파일을 접근하는 방법은 다음의 과정을 거친다. 먼저 외부 파일을 참조하는 참조 객체(대리자, 위임자)를 생성한다. 그리고 참조하는 객체를 조작한다. 그 행동의 결과가 외부 파일이 적용되는 작동 방식이다. 본문에서 다룰 텍스트 파일 또한 자바 프로그램의 외부 파일이다. 텍스트 파일을 바로 자바로 가져오려고 하면 난이도가 많이 올라가고 코드도 복잡해진다. 그래서 자바와 외부 파일을 이어주는 중개인을 만들고 시작하는 방식으로 작성하였다. 여기서 사용하는 파일 참조 클래스는 java.io.File에 속한 클래스이다. 💡File 조작 파일 데이터 확인 File file = new File("C:\\Class\\code\\java\\file\\data.txt"); System.out.pri..