D:\Setup\Java\jdk1.7.0_02\docs\technotes\guides\collections\index.html
迭代器(Iterator)
(1)对于有一些集合类,没有提供 get 操作,可以通过返回一个 迭代器 ,然后迭代集合当中的元素
(2)它提供了一种通用的方式,去访问集合中的元素
public static void printElements(Collection c) {
Iterator it=c.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
java.util.Arrays 对 数组 进行操作
MyStack
查看栈顶元素,并不移走栈顶元素
HashSetTest
如果要用 HashSet 来存放对象的话,那么这个对象就要去实现 hashCode() 与 equals() 方法
j2sdk1.4.1_02\tutorial
PropTest
ArrayListTest.java:
package com.smartdio.hello.jdt;
/**
* @version 1.0 2012-1-15 下午11:24:49
* @author 孔祥龙
*/
import java.util.*;
class ArrayListTest {
public static void printElements(Collection c) {
Iterator it=c.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
/**
* @param args
*/
public static void main(String[] args) {
//ArrayList al=new ArrayList();
/*al.add("winsun");
al.add("weixin");
al.add("mybole");*/
/*al.add(new Point(3,3));
al.add(new Point(2,2));
al.add(new Point(4,4));*/
/*for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}*/
/*System.out.println(a1);
Object[] objs=a1.toArray();
for(int i=0;i<objs.length;i++)
{
System.out.println(objs[i]);
}
List l=Arrays.asList(objs);
System.out.println(l);
printElements(a1);*/
//l.add("zhangsan");
//Iterator it=a1.iterator();
/*Iterator it=l.iterator();
it.next();
it.remove();
while(it.hasNext()) {
System.out.println(it.next());
}*/
Student s1=new Student(2,"zhangsan");
Student s2=new Student(1,"lisi");
Student s3=new Student(3,"wangwu");
Student s4=new Student(2,"mybole");
ArrayList a1=new ArrayList();
a1.add(s1);
a1.add(s2);
a1.add(s3);
a1.add(s4);
Collections.sort(a1,Collections.reverseOrder());//new Student.StudentComparator());
printElements(a1);
}
}
class Point {
int x,y;
Point(int x,int y) {
this.x=x;
this.y=y;
}
public String toString() {
return "x="+x+","+"y="+y;
}
}
class Student implements Comparable {
int num;
String name;
static class StudentComparator implements Comparator { // 将 比较器 作为 Student 这个类的内部类;static: 用外部类的名称去产生内部类的对象
public int compare(Object o1,Object o2) {
Student s1=(Student)o1;
Student s2=(Student)o2;
int result=s1.num > s2.num ? 1 : (s1.num==s2.num ? 0 : -1);
if(result==0) {
result=s1.name.compareTo(s2.name);
}
return result;
}
//没实现 boolean equals(Object obj) 方法原因:
//因为这个类是从 Object 派生而来,在 Object 这个类中,就有一个 equals 方法,
//Student 这个类就继承了 equals 方法,
//这个 equals 方法就相当于是实现了 Comparator 接口中的 equals 方法
}
Student(int num,String name) {
this.num=num;
this.name=name;
}
public int compareTo(Object o) {
Student s=(Student)o;
return num > s.num ? 1 : (num==s.num ? 0 : -1);
}
public String toString() {
return num+":"+name;
}
}
MyStack.java:
package com.smartdio.hello.jdt;
import java.util.*;
/**
* @version 1.0 2012-1-19 下午7:02:23
* @author 孔祥龙
*/
class MyStack {//利用 LinkedList 类,实现栈结构
private LinkedList l1=new LinkedList();
public void push(Object o) {
l1.addFirst(o);
}
public Object pop() {
return l1.removeFirst();
}
public Object peek() {//查看栈顶元素,并不移走栈顶元素
return l1.getFirst();
}
public boolean empty() {
return l1.isEmpty();
}
/**
* @param args
*/
public static void main(String[] args) {
MyStack ms=new MyStack();
ms.push("one");
ms.push("two");
ms.push("three");
System.out.println(ms.pop());
System.out.println(ms.peek());
System.out.println(ms.pop());
System.out.println(ms.empty());
}
}
HashSetTest.java:
package com.smartdio.hello.jdt;
import java.util.*;
/**
* @version 1.0 2012-1-19 下午9:10:03
* @author 孔祥龙
*/
class HashSetTest {
/**
* @param args
*/
public static void main(String[] args) {
//HashSet<String> hs=new HashSet<String>();
HashSet hs=new HashSet();
/*hs.add("one");
hs.add("two");
hs.add("three");
hs.add("one");*/
hs.add(new Student(1,"zhangsan"));
hs.add(new Student(2,"lisi"));
hs.add(new Student(3,"wangwu"));
hs.add(new Student(1,"zhangsan")); //需重写 hashCode()
Iterator it=hs.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
class Student {
int num;
String name;
Student(int num,String name) {
this.num=num;
this.name=name;
}
//如果要用 HashSet 来存放对象的话,那么这个对象就要去实现 hashCode() 与 equals() 方法
//也就是说,在这个类当中需要去覆盖基类的 hashCode() 与 equals() 方法
public int hashCode() {
return num*name.hashCode();
}
public boolean equals(Object o) {
Student s=(Student)o;
return num==s.num && name.equals(s.name);
}
public String toString() {
return num+":"+name;
}
}
PropTest.java:
package com.smartdio.hello.jdt;
import java.util.*;
import java.io.*;
/**
* @version 1.0 2012-1-20 下午7:59:00
* @author 孔祥龙
*/
class PropTest {
/**
* @param args
*/
public static void main(String[] args) {
/*Properties pps=System.getProperties();
pps.list(System.out);*/
Properties pps=new Properties();
try {
//通过 Eclipse 创建的 Java 工程,默认的根目录是 Java 工程的根目录,即 hello.jdt
pps.load(new FileInputStream("./src/com/smartdio/hello/jdt/winsun.ini"));
Enumeration enum2=pps.propertyNames();
while(enum2.hasMoreElements()) {
//System.out.println(enum2.nextElement());
String strKey=(String)enum2.nextElement();
String strValue=pps.getProperty(strKey);
System.out.println(strKey+"="+strValue);
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}