Bible, Lee, Data
Faith, software, data, and everyday life.
JavaAll posts
[Java] List Interface: LinkedList Class
💡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 양방향 통행이 가능하며, 처음과 끝을 연..
[Java] 사용자 정의 정렬: Anonymous Class, sort(), compareTo(), compareToIgnoreCase()
💡익명클래스 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이 더 크면 > 음수..
[Java] 스트림 (Stream)
💡쓰기 스트림 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)..
[Java] 인코딩, 디코딩 (Encoding, Decoding)
💡인코딩 (Encoding) 인코딩은 문자 코드(자바 데이터)를 부호화(1,0)하는 작업으로, 이때 부호화란 1과 0으로 바꾸는 작업을 의미한다. 부호화를 예로 들면 자바 프로그램에서 "홍길동"을 저장하려고 할 때, 텍스트 파일을 '100110111010'과 같은 숫자 형태로 저장하는 것이다. 💡디코딩 (Decoding) 디코딩은 부호화 데이터를 문자 코드로 변환하는 작업, 즉 1과 0으로 된 데이터를 읽어서 우리가 쓰는 형태의 데이터로 바꾸는 작업을 한다. 💡인코딩 / 디코딩 규칙 문자를 1과 0로 바꾸려면 어떤 문자를 1과 0으로 바꿀 건지 규칙을 만들어야 하는데, 국가마다 쓰는 표현이나 관계들이 복잡하게 얽혀있다 보니 많은 규칙이 만들어지게 되었다. 규칙의 특징에 있어서 주목해야 하는 정보는 byt..
[Java] Requirements Q119: 직원 파일 분류
📌리소스 📌Q119 Class package com.test.question; import java.io.File; import java.util.ArrayList; public class Q119 { public static void main(String[] args) { /* ● 요구사항 아래의 조건에 따라 파일을 폴더별로 분류/이동하시오. ● 조건 - 1차: 직원 이름으로 폴더 생성 - 2차: 년도별로 폴더 생성 - 3차: 각 파일을 직원 > 년도 폴더에 이동 ● 리소스 - 폴더 > 직원 - 파일 다운로드 ● 출력 분류가 완료되었습니다. */ String path = "C:\\Class\\code\\java\\file\\파일_디렉토리_문제\\직원"; File dir = new File(path); ..
[Java] Requirements Q118: 폴더 정렬
import java.io.File; import java.util.ArrayList; public class Q118 { public static void main(String[] args) { /* ● 요구사항 폴더 내의 모든 파일들을 찾아 크기를 비교하고, 크기가 큰 순으로 정렬하시오. ● 조건 - 자식 폴더내의 파일도 모두 검색하시오. - 부모 자식 폴더에 상관없이 파일을 한번에 비교하시오. ● 리소스 - 폴더 > 크기 정렬 - 파일 다운로드 ● 출력 [파일명] [크기] [파일이 들어있는 폴더] aaa.exe 57KB AAA bbb.exe 50KB BBB ccc.dat 41KB AAA ddd.txt 20KB CCC .. */ String path = "C:\\Class\\code\\java\\fi..
[Java] Requirements Q117: 폴더 삭제 (재귀메소드 활용)
📌리소스 📌Q117 Class public class Q117 { public static void main(String[] args) { /* ● 요구사항 내용물이 있는 'delete' 폴더를 삭제하시오. ● 조건 - 재귀 메소드 사용 - 삭제된 파일과 자식 폴더 개수를 출력하시오. ● 리소스 - 폴더 > 폴더 삭제 - 파일 다운로드 ● 출력 폴더를 삭제했습니다. 삭제된 폴더는 3개이고, 파일은 6개입니다. */ String path = "C:\\Class\\code\\java\\file\\파일_디렉토리_문제\\폴더 삭제"; HashMap count = new HashMap(); count.put("file", 0); count.put("directory", 0); File dir = new File(..
[Java] Requirements Q114: HashMap 확장자별 카운트
📌리소스 📌Q114 Class import java.io.File; import java.util.Arrays; import java.util.HashMap; import java.util.Set; public class Q114 { public static void main(String[] args) { /* ● 요구사항 이미지 파일이 있다. 확장자별로 파일이 몇개 있는지 세시오. ● 조건 - 새로운 확장자 파일이 추가되도 동작이 가능하게 구현하시오. - 'mouse.bmp' 추가를 하면.. 소스 수정 없이도 *.bmp : 1개 출력이 되게 하시오. ● 리소스 - 폴더 > 확장자별 카운트 - 파일 다운로드 ● 출력 .gif: 10개 .jpg: 5개 .png: 3개 // HashMap를 이용한다. */ ..