문서의 이전 판입니다!
package chapter13; import java.util.ArrayList; import java.util.List; public class ListEx { public static void main(String[] args) { List list = new ArrayList(); list.add(1);list.add(2); list.add(3);list.add(4); list.add(5);list.add(6); System.out.println(list); for(int i=0;i<list. size();i++) { System.out.println(i+":"+ list.get(i)); } } }
package chapter13; import java.util.Vector; public class ListEx2 { public static void main(String[] args) { Vector list = new Vector(); list.add(1.2); // List 메서드 list.add(Math.PI); // List 메서드 list.addElement(3.4); // 이전 메서드 // 향상된 for문 for (Object o : list) { System.out.println(o); } double num = 3.4; // 해당 요소의 인덱스 (없으면 -1) int index = list.indexOf(num); if (index >= 0) { // 요소가 존재함 System.out.println(num + " 의 위치 :" + index); } else { // 존재하지 않음 System.out.println(num + " 는 list 에 없습니다"); } num = 1.2; // 값이 존재하는지 확인 if (list.contains(num)) { // 제거(이전 메서드) list.removeElement(num); System.out.println(num + " 삭제됨"); } // 해당 요소의 인덱스 (없으면 -1) System.out.println(list.indexOf(num)); System.out.println(list); // toString() } }
Shape.java
abstract class Shape { // 필드 int x, y; // 생성자 Shape() { this(0, 0); } Shape(int x, int y) { this.x = x; this.y = y; } // 추상메서드 abstract double area(); abstract double length(); // 일반 메서드 public String getLocation() { return "x:" + x + ",y:" + y; } }
Circle.java
package chapter13; public class Circle extends Shape { // 필드 double r; // 생성자 Circle() { this(1); } Circle(double r) { this.r = r; } // 메서드 재정의(오버라이딩) @Override double area() { return (r * r) * Math.PI; } @Override double length() { return (r * 2) * Math.PI; } }
Rectangle.java
package chapter13; public class Rectangle extends Shape { // 필드 int w,h; // 생성자 Rectangle() { this(1,1); } Rectangle(int w, int h) { this.w = w; this.h = h; } // 메서드 재정의(오버라이딩) @Override double area() { return (w * h); } @Override double length() { return (w + h) * 2; } }
ListEx3.java
package chapter13; import java.util.ArrayList; import java.util.List; public class ListEx3 { public static void main(String[] args) { List list = new ArrayList(); // list 객체에 요소 추가 list.add(new Circle(3.0)); list.add(new Rectangle(3, 4)); list.add(new Circle(5)); list.add(new Rectangle(5,6)); System.out.println(" 전체 도형의 면적의 합 :" + sumArea(list)); System.out.println(" 전체 도형의 둘레의 합 :" + sumLength(list)); } private static double sumLength(List list) { double sumlength = 0; for (int i=0; i<list.size(); i++) { // list 객체 형변환 Shape s = (Shape)list.get(i); sumlength += s.length(); } return sumlength; } private static double sumArea(List list) { double sumarea = 0; for (int i = 0; i < list.size(); i++) { // list 객체 형변환과 메서드 호출 동시에 sumarea += ((Shape)list.get(i)).area(); } return sumarea; } }
package chapter13; import java.util.ArrayList; import java.util.LinkedList; public class ArrayListCompareLinkedList { public static void main(String[] args) { ArrayList alist = new ArrayList(); LinkedList llist = new LinkedList(); for (int i=0; i<100000; i++) { alist.add(i); llist.add(i); } System.out.println("ArrayList Access"); long start = System.currentTimeMillis(); for (int i=0; i<alist.size(); i++) { alist.get(i); } long end = System.currentTimeMillis(); System.out.println(end-start); System.out.println("LinkedList Access"); start = System.currentTimeMillis(); for (int i=0; i<llist.size(); i++) { llist.get(i); } end = System.currentTimeMillis(); System.out.println(end-start); } }
package chapter13; import java.util.ArrayList; import java.util.LinkedList; public class ArrayListCompareLinkedList2 { public static void main(String[] args) { ArrayList alist = new ArrayList(); LinkedList llist = new LinkedList(); for (int i=0; i<100000; i++) { alist.add(i); llist.add(i); } System.out.println("ArrayList 추가"); long start = System.currentTimeMillis(); for (int i=0; i<10000; i++) { alist.add(500, "i"); } long end = System.currentTimeMillis(); System.out.println(end-start); System.out.println("LinkedList 추가"); start = System.currentTimeMillis(); for (int i=0; i<10000; i++) { llist.add(500, i+""); } end = System.currentTimeMillis(); System.out.println(end-start); } }
HashSet
TreeSet
Descend.java
package chapter13; import java.util.Comparator; public class Descend implements Comparator { @Override public int compare(Object o1, Object o2) { Comparable c1 = (Comparable)o1; Comparable c2 = (Comparable)o2; return c1.compareTo(c2) * (-1); } }
TreeSetEx.java
package chapter13; import java.util.SortedSet; import java.util.TreeSet; public class TreeSetEx { public static void main(String[] args) { SortedSet set = new TreeSet(); String from = "bat"; String to = "d"; // set객체에 추가 set.add("ant");set.add("alias"); set.add("batman");set.add("aha"); set.add("cola");set.add("Cola"); set.add("ddr");set.add("dance"); set.add("dEEE");set.add("deee"); set.add("ever"); set.add("giant"); set.add("zoo"); // 출력 System.out.println(set); System.out.println("from:"+from+",to:"+to); // from~to 검색 System.out.println(set.subSet(from, to)); System.out.println("from:"+from+",to:"+to+"zzzz"); // from~to+"zzzz" 검색 System.out.println(set.subSet(from,to+"zzzz")); // 내림차순 정렬 set = new TreeSet(new Descend()); set.add("ant");set.add("alias"); set.add("batman");set.add("aha"); set.add("cola");set.add("Cola"); set.add("ddr");set.add("dance"); set.add("dEEE");set.add("deee"); set.add("ever"); set.add("giant"); set.add("zoo"); System.out.println(set); System.out.println("from:"+from+",to:"+to); // to~from (반대로 검색) System.out.println(set.subSet(to, from)); } }
Member2.java
package chapter13; public class Member { // 필드 String name; int age; // 생성자 Member (String name, int age) { this.name = name; this.age = age; } // toSring() 메서드 재정의 @Override public String toString() { return "("+ name + "," + age + ")"; } // equals() 메서드 재정의 @Override public boolean equals(Object obj) { if(obj instanceof Member) { Member m = (Member)obj; return this.name.equals(m.name) && this.age == m.age; } else { return false; } } // hashCode() 메서드 재정의 @Override public int hashCode() { return this.name.hashCode() + age; } }
AgeDesc.java
package chapter13; import java.util.Comparator; public class AgeDesc implements Comparator { @Override public int compare(Object o1, Object o2) { // Member2로 형변환 Member2 m1 = (Member2)o1; Member2 m2 = (Member2)o2; // 나이로 내림차순 정렬 return m2.age - m1.age; } }
NameDesc.java
package chapter13; import java.util.Comparator; public class NameDesc implements Comparator { @Override public int compare(Object o1, Object o2) { // Member2로 형변환 Member2 m1 = (Member2)o1; Member2 m2 = (Member2)o2; // 이름으로 내림차순 정렬 return m1.compareTo(m2) * (-1); } }
TreeSetEx2.java
HashMap
Properties