2012/02
-
[JAVA] HeadFirst 16장 : TreeSetJAVA 2012. 2. 29. 17:33
자료구조를 정렬된 상태로 유지시키고 싶다면 TreeSet을 쓰면된다. * 한가지 중요한건...정렬할때 Song에 어떤 멤버변수로 비교할지 기준을 정해야 하기때문에 마찬가지로 제네릭으로 들어가는 클래스는 Comparable을 implements 해서 compareTo() 메소드를 구현해야한다. public class Jukebox8 { ArrayList songList = new ArrayList(); int val; public static void main(String[] args) { new Jukebox8().go(); } public void go() { getSongs(); System.out.println(songList); Collections.sort(songList); System.out..
-
Java > TreeSet 항상정렬 시킴, 때문에 정렬이 필요하지 않은 상황에선 불필요한 속도저하 (Grade A)Performance 2012. 2. 29. 13:58
HeadFirstJava > Chapter 16 TreeSet은 중복을 방지해준다는 면에서 HashSet과 비슷합니다. 하지만 정렬을 유지시켜주는 기능도 있습니다. 인자가 없는 생성자를 이용해서 TreeSet을 만들면 객체의 compreTo() 메소드를 써서 자동으로 정렬된 집합을 만들어 줍니다. 그리고 생성자에 Comparator를 넘겨주면 그 객체의 compare() 메소드를 써서 정렬을 해줍니다. 정렬을 하지 않아도 될 때도 항상 정렬을 하기 때문에 속도가 조금 느리다는 단점도 있긴 합니다. 하지만 대부분의 경우에 그 속도 저하를 거의 느끼기 힘들 것입니다. 실험 필요...
-
[JAVA] HeadFirst 16장 : HashSet, hashcode, equalJAVA 2012. 2. 29. 12:04
그냥 자료구조만 HashSet으로 써서 출력을 해보면 public class Jukebox6 { ArrayList songList = new ArrayList(); public void go() { getSong(); System.out.println(songList); Collections.sort(songList); System.out.println(songList); HashSet songSet = new HashSet(); songSet.addAll(songList); System.out.println(songSet); } public static void main(String[] args) { new Jukebox6().go(); } void getSong() { try { File file =..
-
[JAVA] HeadFirst 16장 : Comparable, Comparator 와 SortJAVA 2012. 2. 28. 12:05
Collection 이나 Map에서 제네릭 ( 이런거) 을 사용한다. 내가 만든 클래스의 인스턴스를 자료구조 내에서 정렬 시킬때 어떤 맴버변수 기준으로 정렬할지 정해야 하는데 이때 아래와 같이 Comparable을 implements 하고 compareTo 메소드를 구현하면 Song이 항목으로 들어간 자료구조를 Collections.sort()로 정렬할때 Song 내부에서 구현한 compareTo를 사용하여 정렬한다. title을 기준으로 하고 싶으면 compareTo에서 title로 비교하고, artist로 비교하고 싶으면 artist 멤버변수로 compareTo를 구현하면 된다. public class Song implements Comparable { String title; String artis..
-
[JAVA] HeadFirst 16장 : ArrayListJAVA 2012. 2. 26. 23:52
16장은 대학때 배웠던 자료구조를 자바에서 어떻게 갔다 쓰는지 나옴 다짜고짜 16장 첫번째 예제 돌려봄... 그냥 ArrayList 써보는 거임..;; 이번기회에 잊혀졌던 모든 자료구조를 갔다 써보자;; 첫번째...ArrayList.. Jukebox1.java package chap16.practice; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.Hashtable; public class Jukebox1 { ArrayList songList = new ArrayList(); Hashtable songListHash = new H..
-
[JAVA] Socket을 이용한 간단한 채팅 프로그램JAVA 2012. 2. 26. 22:57
Head First Java를 훓어 보는 중이다.. 15장에 간단한 채팅 프로그램이 있어 그냥 돌려봄.. 간단하다~ 자바는 입출력 스트림만 잘 체이닝하면 소켓이던 DB던 파일이던 머던간에 그리 어려움은 없어 보인다. 서버.. package chap15.practice; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socke..