νμλ²νΈ, νμμ΄λ¦ κ° 5κ°λ₯Ό μ€λ³΅λμ§ μλλ‘ μ
λ ₯νκ³ λ²νΈμμΌλ‘ μ΄λ¦μ ν¨κ» νλ©΄μ νμνλ€
λ€μ μ΄λ¦μμΌλ‘ μ λ ¬νμ¬ λ²νΈμ ν¨κ» μ΄λ¦μ νμνλ€. μ΄λ μλ μ΄λ¦μ λΆμ¬μ§ λ²νΈκ° λ³κ²½λμ§ μλλ‘νλ€
λ²νΈμμΌλ‘ μ΄λ¦μ ν¨κ» νλ©΄μ νμνκΈ° μν΄ (Map<Integer,Member>)λ₯Ό μ΄μ©νλ€.
Main ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ezen.javaoop.Member2;
public class MapMain
{
public static void main(String[] args)
{
Map<Integer,Member2> map = new HashMap<>();
map.put(3, new Member2(3, "ν΄λ¦°"));
map.put(1, new Member2(1, "νλ"));
map.put(5, new Member2(5, "λ―Όμ§"));
map.put(4, new Member2(4, "λ€λμ"));
map.put(2, new Member2(2, "νλ¦°"));
List<Integer> list = new ArrayList<>(map.keySet());
Collections.sort(list);
for(int i =0;i<list.size();i++) {
System.out.println(map.get(list.get(i)));
}
List<Member2> list2 = new ArrayList<Member2>(map.values());
Collections.sort(list2);
System.out.println("-----------------");
for(int y =0;y<list2.size();y++) {
System.out.println(list2.get(y));
}
}
}
|
cs |
Member2 ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
public class Member2 implements Comparable<Member2>
{
private int num;
private String name;
public Member2() {}
public Member2(int num, String name) {
super();
this.setNum(num);
this.setName(name);
}
@Override
public String toString() {
return num +"\t" + name;
}
@Override
public int compareTo(Member2 o) {
return this.name.compareTo(o.name);
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
|
cs |
μ½μ κ°:
λ²νΈλ₯Ό ν€ κ°μΌλ‘ μ£ΌμκΈ° λλ¬Έμ ν€λ₯Ό λ°λ‘ λ½μ λΌ μ μλ keySet() λ©μλλ₯Ό μ΄μ©νλ€. μ΄λ μλ£κ΅¬μ‘°λ SetμΌλ‘ μ μ₯λκΈ°λλ¬Έμ μμλλ‘ μ λ ¬μ΄ λΆκ°λ₯νλ€ λ°λΌμ Listλ‘ λ§λ€μ΄μ€μ Collections.sort() λ©μλλ₯Ό μ΄μ©νμ¬ μ λ ¬νλ€.
λλ²μ§Έλ μ΄λ¦μμΌλ‘ μ λ ¬ν΄μΌνκΈ°λλ¬Έμ κ°μ μ»μ μ μλ values()λ©μλλ₯Ό μ¬μ©ν΄ List λ₯Ό λ§λ€κ³ Member2 ν΄λμ€λ μ¬μ©μκ° λ§λ ν΄λμ€μ΄κΈ° λλ¬Έμ λ¬Έμλ₯Ό λΉκ΅ν μ μλ compareTo() λ©μλλ₯Ό μ€λ²λΌμ΄λ ν΄μ€λ€.
μ΄νμ μ λ ¬μν€λ©΄ λκ°μ§ κ²½μ°λ‘ μ λ ¬λ μ½μ κ°μ νμΈν μ μλ€.
βStreamβ
νλ¦, λ°μ΄ν°μ νλ¦ (source -> sink)
λ€μν λ°μ΄ν°μ νλ¦μ κ΄λ¦¬ν μ μλ€.
Data IO API ν΄λμ€
λ°μ΄ν°μ 2κ°μ§ μ’ λ₯ :
ν μ€νΈ λ°μ΄ν°, 1~3 λ°μ΄νΈκ° λ¬Έμλ₯Ό λνλΈλ€.
λ°μ΄λ리(Binary) λ°μ΄ν°(λΉλμ€, μ€λμ€, μ΄λ―Έμ§ λ±λ±) : 1λ°μ΄νΈκ° 1κ°μ μ 보λ₯Ό κ°λλ€.
Character Stream - ν μ€νΈ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ€. νλ¬Έμμ© λ€λ£¬λ€. ~Reader, ~Writer λΆλ νΉμ§μ΄ μλ€.
Binary(bytes)Stream - λ¬Έμ μ΄μΈμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ€. ν λ°μ΄νΈμ© λ€λ£¬λ€. ~InputStream, ~OutputStream λΆλ νΉμ§μ΄ μλ€. ~ λ°μ΄ν°μ μμ€λ₯Ό κ°λ₯΄ν€λ λ§μ΄ μμ£Ό λΆλλ€.
ex) FileReader: νμΌμμ ν μ€νΈ λ°μ΄ν°λ₯Ό μ½μ΄ μ€λ μ€νΈλ¦Ό ν΄λμ€(μμ€ μ€νΈλ¦Ό)
FileWriter :νμΌμμ ν μ€νΈ λ°μ΄ν°λ₯Ό μΈ μ μλ μ€νΈλ¦Ό(μ±ν¬ μ€νΈλ¦Ό)
λ¬Έμ/λΉλ¬Έμ κ·Έλ¦¬κ³ μ λ ₯/μΆλ ₯λ± μ¬λ¬κ²½μ°λ‘ 2κ°μ§λ‘ λλ μ μλ€
μ€νΈλ¦Όμ λμν ν΄λ³΄λ©΄ λ°μ΄ν°κ° 보λ΄λ μͺ½μ΄ μμ€ μ€νΈλ¦Ό μ΅μ’ μ μΌλ‘ λ°μμ λνλλ μͺ½μ΄ μ±ν¬μ€νΈλ¦Όμ΄λ€. μ λ§λ¨μ λ§λ¨ μ€νΈλ¦Ό(λ Έλ μ€νΈλ¦Ό)μ΄λΌνκ³ μ€κ°μ λΌμ΄ μ¬λ¬κ°μ§ κΈ°λ₯μ νλ μ€νΈλ¦Όμ νν° μ€νΈλ¦Όμ΄λΌ νλ€.
Stream μ€μ΅
λ¬ΈμνμΌ
read() λ©μλλ₯Ό μ΄μ©νμ¬
νκΈμλ§ μΆλ ₯νλ λ°©λ²
read() λ©μλλ₯Ό μ΄μ©νμ¬ λ°λ³΅λ¬Έμ μ¬μ©νμ¬ λ¬Έμμ μλ μ 체 λ¬Έμ μ½κΈ°
μ΄λ FileReaderλ λ°λ‘ μμ€μ€νΈλ¦Όμ΄λ€. μμ€μ€νΈλ¦Όμ μ½μ λ°μ΄ν°κ° μλ μμΉλ₯Ό λ£μ΄μ€λ€.
λ°μ΄ν°κ° μμΉμ μμ κ²½μ°μΈ μμΈ κ²½μ°λ try catchλ¬ΈμΌλ‘ λ§λ€μ΄ μ€λ€.
μ£Όμλ¬Έμ κΈμκ° μμμ΄λΌκ³ μλͺ» μ μλλ°, κΈμκ° μμμ΄ μλλΌ μ€νΈλ¦Όμ λμ΄ -1κ°μ΄λ€.
νν° μ€νΈλ¦Όμ μ΄μ©νμ¬ λ¬Έμ νκΈμμ©μ΄ μλ ν νμ© μ½κΈ°
ννμ© μ½κ² ν΄μ£Όλ BufferedReader λ μμ€μ€νΈλ¦Ό λ€μμ λΆλ νν°μ€νΈλ¦Όμ΄λ€.
νν° μ€νΈλ¦Όμ νλΌλ―Έν° μμλ μμ€μ€νΈλ¦Όμ²λΌ λ°λ‘ λ°μ΄ν°μ μμΉλ₯Ό μ μ΄μ μ€ μ μλ€.
μμ€μ€νΈλ¦Όμ λ£μ΄μΌλ§ νλ€.
λ¬Έμμ μλ μμ±λ€μ 보λ κ°μ²΄λ₯Ό λ§λ€μ΄μ κ°κ°μ μ μ₯ν΄ λ³΄κΈ°
λ¬Έμ λ΄μ©
Board ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
public class Board
{
private int num;
private String title;
private String author;
private String date;
private String contents;
public Board() {}
public Board(int num, String title, String author, String date, String contents) {
super();
this.num = num;
this.title = title;
this.author = author;
this.date = date;
this.contents = contents;
}
public Board(String[] board) {
this.num= Integer.valueOf(board[0]);
this.title= board[1];
this.author= board[2];
this.date= board[3];
this.contents= board[4];
}
@Override
public String toString() {
return String.format("%d\t%s\t%s\t%s\t%s", num, title, author, date, contents);
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getContents() {
return contents;
}
public void setContents(String contents) {
this.contents = contents;
}
}
|
cs |
Main ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
public class StreamMain
{
public static void main(String[] args)
{
try {
FileReader fr = new FileReader("D:/java_test/new.txt");
BufferedReader br = new BufferedReader(fr);
String line = null;
List<Board> list = new ArrayList<>();
while((line=br.readLine())!=null) {
String[] token = line.split("\\|");
Board board = new Board(token);
list.add(board);
}
br.close();
printboardlist(list);
}
catch (Exception e) {
e.printStackTrace();
}
}
private static void printboardlist(List<Board> list) {
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
}
}
|
cs |
μ½μ κ°:
|λ‘ λλμ΄μ§ μ 보λ€μ μλ°μμ κ°κ° κ°μ²΄μ μ μ₯νμ¬ νμν μ μλ€.
String[] token = line.split("\\|");
νμ€ μ© λ°μμ¨ μ 보λ₯Ό |κΈ°μ€μΌλ‘ λλμ΄ ν ν°μΌλ‘ λ§λ λ€ λ¬Έμμ΄λ°°μ΄μ μ μ₯νλ©΄ κ°λ₯ν΄μ§λ€. μ΄ λ¬Έμμ΄μ νλμ Boardκ°μ²΄λ‘μ λ΄μ Board κ°μ²΄μ μ μ₯ν΄μ€λ€. κ°μ΄ μ μ₯λ κ°μ²΄λ₯Ό μλ£κ΅¬μ‘°μ λ΄μμ€λ€.
μ΄ν μΆλ ₯νλ©΄ ν μ€νΈ μ 보λ€μ΄ μλ°μμ κ°κ°μ κ°μ²΄λ‘ λλμ΄ μ μ₯λ κ±Έ λ³Ό μ μλ€.
μ ν΄λμ€λ₯Ό μ΄μ©νμ¬ νλ©΄μ κ²μκΈ λͺ©λ‘μ νμν λ contents μμ±μ μ μΈν λ€λ₯Έ μμ±λ€λ§ νμνλ€.
μ΄μ©μκ° ν€λ³΄λμμ κ²μκΈ λ²νΈλ₯Ό μ λ ₯νλ©΄ ν΄λΉ κΈμ μ 체 λ΄μ©μ 보μ¬μ€λ€.
Main ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class StreamMain
{
public static void main(String[] args)
{
try {
FileReader fr = new FileReader("D:/java_test/new.txt");
BufferedReader br = new BufferedReader(fr);
String line = null;
List<Board> list = new ArrayList<>();
while((line=br.readLine())!=null) {
String[] token = line.split("\\|");
Board board = new Board(token);
list.add(board);
}
br.close();
printboardlist(list);
Scanner kbd = new Scanner(System.in);
System.out.println("λ²νΈλ₯Ό λλ₯΄μΈμ.");
int inputnum = kbd.nextInt();
kbd.nextLine();
Board kwd = new Board();
kwd.setNum(inputnum);
System.out.println(list.get(list.indexOf(kwd)));
}
catch (Exception e) {
e.printStackTrace();
}
}
private static void printboardlist(List<Board> list) {
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i).printlist());
}
}
}
|
cs |
Board ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
public class Board
{
private int num;
private String title;
private String author;
private String date;
private String contents;
public Board() {}
public Board(int num, String title, String author, String date, String contents) {
super();
this.num = num;
this.title = title;
this.author = author;
this.date = date;
this.contents = contents;
}
public Board(String[] board) {
this.num= Integer.valueOf(board[0]);
this.title= board[1];
this.author= board[2];
this.date= board[3];
this.contents= board[4];
}
public String printlist() {
return String.format("%d\t%s\t%s\t%s", num, title, author, date);
}
@Override
public boolean equals(Object obj) {
Board other = (Board)obj;
return this.num==other.num;
}
@Override
public String toString() {
return String.format("%d\t%s\t%s\t%s\t%s", num, title, author, date,contents);
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getContents() {
return contents;
}
public void setContents(String contents) {
this.contents = contents;
}
}
|
cs |
μ½μ κ°:
λλ±λΉκ΅λ₯Ό νκΈ° μν΄μ λ¨Όμ Board ν΄λμ€μ equals λ©μλλ₯Ό λ²νΈ λΉκ΅λ₯Ό νλλ‘ μ€λ²λΌμ΄λ ν΄μ€μΌνλ€. contents μμ΄ νλ¦°νΈ ν μ μλ λ©μλλ μλ‘ λ§λ€μ΄μ λͺ©λ‘μ μΆλ ₯ν λ μ΄μ©νλ€. ν€λ³΄λμμ λ°μ μ«μλ₯Ό μλ‘μ΄ Board κ°μ²΄μ setNum() λ©μλλ₯Ό ν΅ν΄ λ£μ΄μ£Όκ³ μ΄ μ λ ₯λ μ«μ κ°μ κ°μ§κ³ μλ Board κ°μ²΄λ₯Ό μ°Ύμμ νλ¦°νΈ ν΄μ£Όλ©΄ λλ€.
λκΈ