Java的集合类

package com.test2;
import java.util.*;

/**
 * @author qingfeng
 * 功能:集合类练习
 */
public class Collection {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ClerkManager cm = new ClerkManager();
        Clerk clerk1 = new Clerk("yan",20,1332.1f);
        //cm.addClerk(clerk1);
        //cm.showArrayListInfo();
        //cm.showVectorListInfo();
        Clerk clerk2 = new Clerk("zhang",20,15532.26f);
        //cm.addClerk(clerk2);
        //cm.showLinkListInfo();
        Clerk clerk3 = new Clerk("zhao",20,11.1f); //会覆盖原来的!!(因为HashMap不允许key值重复)注意与ArrayList的区别!
        cm.addClerk_HashMap(clerk1);
        cm.addClerk_HashMap(clerk2);
        cm.addClerk_HashMap(clerk3);
        //cm.isExisted();
        //cm.showAllInfo_HashMap();
        
        Clerk clerk4 = new Clerk(null,20,566.1f);
        cm.addClerk_HashMap(clerk4);
        cm.isExisted();
        //cm.showAllInfo_HashMap();
        
        //cm.addClerk_Hashtable(clerk4);
        //cm.isExisted();
        //cm.showAllInfo_Hashtable();
    }

}
//员工管理类
class ClerkManager
{
    //成员属性:对象的引用
    ArrayList al = null;//数组列表 高效率
    Vector vec = null;//向量 线程安全  并发
    LinkedList ll= null;//链型列表
    HashMap hm = null;//键值对 高效率
    Hashtable ht= null;//键值对 线程安全 并发
    
    //构造方法:创建对象
    public ClerkManager()
    {
        al = new ArrayList();
        vec = new Vector();    
        ll = new LinkedList();
        hm = new HashMap();
        ht = new Hashtable();    
    }
    //添加员工
    public void addClerk(Clerk clerk)
    {
        //al.add(clerk);
        //vec.add(clerk);
        //ll.addFirst(clerk);//栈型结构:先输入后输出
        //ll.addLast(clerk);//队列型结构:先进先出
    }
    public void addClerk_HashMap(Clerk clerk)
    {
        hm.put(clerk.getName(), clerk);//key值为姓名 value为对象!!
    }
    public void addClerk_Hashtable(Clerk clerk)
    {
        ht.put(clerk.getName(), clerk);
    }
    //显示所有员工(ArrayList 遍历)
    public void showArrayListInfo()
    {
        for(int i=0; i<al.size(); i++)
        {
            Clerk clerk = (Clerk)al.get(i);//从数组中取出对象
            System.out.println(clerk.getSalary());//用对象去调用方法
            
        }
    }
    //显示所有员工(Vector 遍历)
    public void showVectorInfo()
    {
        for(int i=0; i<vec.size(); i++)
        {
            Clerk clerk = (Clerk)vec.get(i);//取出对象
            System.out.println(clerk.getSalary());//用对象去调用方法
            
        }
    }
    //显示所有员工(LinkedList 遍历)
    public void showLinkListInfo()
    {
        for(int i=0; i<ll.size(); i++)
        {
            Clerk clerk = (Clerk)ll.get(i);//取出对象
            System.out.println(clerk.getSalary());//用对象去调用方法
        }
    }
    //HashMap查看是否有员工
    public void isExisted()
    {
        if(hm.containsKey(null))
        {
            System.out.println("你所查的key值存在!");
            Clerk clerk=(Clerk)hm.get(null);
            System.out.println(clerk.getSalary());
        }
        else
        {
            System.out.println("你所查的key值不存在!");
        }    
    }
    //HashMap遍历所有对象
    //Iterator(接口)迭代器; keySet()返回此映射中所包含的键的 Set 视图;iterator()返回在此 set 中的元素上进行迭代的迭代器。
    public void showAllInfo_HashMap()
    {
        Iterator it = hm.keySet().iterator();
        while(it.hasNext())//hasNext返回boolean
        {
            String key = it.next().toString();//next()取出key
            Clerk clerk = (Clerk)hm.get(key);
            System.out.print("名字:"+clerk.getName());
            System.out.print(" 年龄:"+clerk.getAge());
            System.out.println(" 薪水:"+clerk.getSalary());
        }
    }
    //Hashtable与HashMap的区别测试
    public void showAllInfo_Hashtable()
    {
        Iterator it = ht.keySet().iterator();
        while(it.hasNext())//hasNext返回boolean
        {
            String key = it.next().toString();//next()取出key
            Clerk clerk = (Clerk)ht.get(key);
            System.out.print("名字:"+clerk.getName());
            System.out.print(" 年龄:"+clerk.getAge());
            System.out.println(" 薪水:"+clerk.getSalary());
        }
    }
    
}

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

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public float getSalary() {
        return salary;
    }

    public void setSalary(float salary) {
        this.salary = salary;
    }
    
    
}
原文地址:https://www.cnblogs.com/qingfengzhuimeng/p/6513556.html