문서의 이전 판입니다!
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
<code 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;
}
}
</code>
Circle.java
<code 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;
}
}
</code>
Rectangle.java
<code 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;
}
}
</code>
ListEx3.java
<code 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 += 1).area();
}
return sumarea;
}
}
</code>
<code java>
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);
}
}
</code>
<code java>
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);
}
}
</code>
===== Set 인터페이스 =====
HashSet
<code java>
</code>
<code java>
</code>
<code java>
</code>
TreeSet
Descend.java
<code 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);
}
}
</code>
TreeSetEx.java
<code 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));
}
}
</code>
Member2.java
<code 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;
}
}
</code>
AgeDesc.java
<code 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;
}
}
</code>
NameDesc.java
<code 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);
}
}
</code>
TreeSetEx2.java
<code java>
</code>
===== Iterator와 Enumeration =====
<code java>
</code>
<code java>
</code>
<code java>
</code>
<code java>
</code>
===== Map 인터페이스 =====
<code java>
</code>
HashMap
<code java>
</code>
<code java>
</code>
<code java>
</code>
<code java>
</code>
Properties
<code java>
</code>