集合クラスの一般的な使い方
4591 ワード
スタック、キューなどの一般的な要件は、コレクションクラスで実現できます.
キュー:
hashset:
treeset:
package cn.ibeans.test;
import java.util.LinkedList;
/**
* LinkedList ,
* @author llf
*
*/
public class MyStack {
LinkedList ll = new LinkedList();
/**
*
* @param o
*/
public void push(Object o){
ll.addFirst(o);
}
/**
*
* @return
*/
public Object pop(){
return ll.removeFirst();
}
/**
*
* @return
*/
public boolean isEmpty(){
return ll.isEmpty();
}
public static void main(String[] args) {
MyStack stack = new MyStack();
stack.push("one");
stack.push("two");
stack.push("three");
while(!stack.isEmpty()){
System.out.println(stack.pop());
}
}
}
キュー:
package cn.ibeans.test;
import java.util.LinkedList;
import java.util.List;
/**
*
* @author llf
*
*/
public class MyQueue {
private LinkedList ll = new LinkedList();
/**
*
* @param o
*/
public void put(Object o){
ll.addLast(o);
}
/**
*
* @return
*/
public Object get(){
return ll.removeFirst();
}
public boolean isEmpty(){
return ll.isEmpty();
}
public static void main(String[] args) {
MyQueue queue = new MyQueue();
queue.put("one");
queue.put("two");
queue.put("three");
while(!queue.isEmpty()){
System.out.println(queue.get());
}
}
}
hashset:
package cn.ibeans.test;
import java.util.HashSet;
import java.util.Iterator;
/**
* hashset set
* , hashCode() equals()
* @author llf
*
*/
public class MyHashSet {
public static void main(String[] args) {
HashSet hs = new HashSet();
hs.add(new Student("zhangsan",1));
hs.add(new Student("lishi",2));
hs.add(new Student("zhangsan",1));
hs.add(new Student("wangwu",3));
Iterator it = hs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class Student{
int age;
String name;
Student(String name,int age){
this.age=age;
this.name = name;
}
public int hashCode(){
return age*name.hashCode();
}
public boolean equals(Object o){
Student s = (Student)o;
return s.age==age && s.name.equals(name);
}
public String toString(){
return "name : "+age;
}
}
treeset:
package cn.ibeans.test;
import java.util.Iterator;
import java.util.TreeSet;
/**
* treeset
* comparable , treeset
* @author llf
*
*/
public class MyTreeSet {
public static void main(String[] args) {
TreeSet hs = new TreeSet();
hs.add(new Man("zhangsan",1));
hs.add(new Man("lishi",2));
hs.add(new Man("zhangsan",1));
hs.add(new Man("wangwu",3));
hs.add(new Man("wangwu",0));
Iterator it = hs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class Man implements Comparable{
int age;
String name;
Man(String name,int age){
this.age=age;
this.name = name;
}
public int compareTo(Object o){
Man s = (Man)o;
int result = age>s.age ? 1:(age==s.age?0:-1);
if(result==0){
result = name.compareTo(s.name);
}
return result;
}
public int hashCode(){
return age*name.hashCode();
}
public boolean equals(Object o){
Student s = (Student)o;
return s.age==age && s.name.equals(name);
}
public String toString(){
return name +" : "+age;
}
}