和风细雨

世上本无难事,心以为难,斯乃真难。苟不存一难之见于心,则运用之术自出。

Java泛型类示例

泛型类示例一:
package com.sitinpsring;

import java.util.ArrayList;
import java.util.List;

/**
 * 泛型类示例一,成员变量为链表,T可以指代任意类类型.
 * 
@author sitinspring
 *
 * @date 2007-12-28
 
*/

public class Service<T>{
    
// 元素为T的链表
    private List<T> elements;
    
    
/**
     * 构造函数,这里无须指定类型
     *
     
*/

    
public Service(){
        elements
=new ArrayList<T>();
    }

    
    
/**
     * 向链表中添加类型为T的元素
     * 
@param element
     
*/

    
public void add(T element){
        elements.add(element);
    }

    
    
/**
     * 打印链表中元素
     *
     
*/

    
public void printElements(){
        
for(T t:elements){
            System.out.println(t);
        }

    }

    
    
/**
     * 使用示例
     * 
@param args
     
*/

    
public static void main(String[] args){
        
// 创建Service类的示例memberService
        Service<Member> memberService=new Service<Member>();
        
        
// 向memberService中添加元素
        memberService.add(new Member("Andy",25));
        memberService.add(
new Member("Bill",24));
        memberService.add(
new Member("Cindy",55));
        memberService.add(
new Member("Felex",35));
        
        
// 打印memberService中诸元素
        memberService.printElements();
    }

}

泛型类示例二:
package com.sitinpsring;

import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;

/**
 * 泛型类示例二,成员变量为哈希表,k,v可以指代任意类类型.
 * 
@author sitinspring
 *
 * @date 2007-12-28
 
*/

public class ServiceHt<K,V>{
    
private Map<K,V> elements;
    
    
/**
     * 向elements中添加元素
     * 
@param k
     * 
@param v
     
*/

    
public void add(K k,V v){
        
// 如果elements为空则创建元素
        if(elements==null){
            elements
=new Hashtable<K,V>();
        }

        
        
// 向elements中添加键值对
        elements.put(k, v);
    }

    
    
/**
     * 打印哈希表中的元素
     *
     
*/

    
public void printElements(){
        Iterator it
=elements.keySet().iterator();
        
        
while(it.hasNext()){
            K k
=(K)it.next();
            V v
=elements.get(k);
            
            System.out.println(
"键="+k+" 值="+v);
        }

    }

    
    
/**
     * 使用示例
     * 
@param args
     
*/

    
public static void main(String[] args){
        
// 创建Service类的示例memberService
        ServiceHt<String,Member> memberService=new ServiceHt<String,Member>();
        
        
// 向memberService中添加元素
        memberService.add("Andy",new Member("Andy",25));
        memberService.add(
"Bill",new Member("Bill",24));
        memberService.add(
"Cindy",new Member("Cindy",55));
        memberService.add(
"Felex",new Member("Felex",35));
        
        
// 打印memberService中诸元素
        memberService.printElements();
    }

}

成员类:
package com.sitinpsring;

/**
 * 成员类
 * 
@author sitinspring
 *
 * @date 2007-12-28
 
*/

public class Member{
    
private String name;
    
private int age;
    
    
public Member(String name,int age){
        
this.name=name;
        
this.age=age;
    }

    
    
public String toString(){
        
return "Name="+name+" Age="+age;
    }


    
public int getAge() {
        
return age;
    }


    
public void setAge(int age) {
        
this.age = age;
    }


    
public String getName() {
        
return name;
    }


    
public void setName(String name) {
        
this.name = name;
    }

}

posted on 2008-02-22 10:26 和风细雨 阅读(1823) 评论(1)  编辑  收藏

评论

# re: Java泛型类示例 2009-05-22 16:40 Jaja

public void printElements(){
K k = null;
V v = null;
Iterator<K> ite = null;
if(null == map){
return;
}
ite = map.keySet().iterator();
while(ite.hasNext()){
k = ite.next();
v = map.get(k);
print(k,v);
}
}
public void print(K k,V v){
System.out.println("key = " + k + " value = " + v);
}  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: