} } /**
* @author Hujun * */
class EmpManage { private static ArrayList al= new ArrayList();
// public EmpManage() { // al = new ArrayList(); // } public static void addEmp() { Employee e=new Employee(); System.out.println(\请输入员工名字:\ e.setName(EasyScanner.nextString());
}
System.out.println(\请输入员工工号:\e.setNumber(EasyScanner.nextString()); System.out.println(\请输入员工工资:\e.setSal(EasyScanner.nextFloat()); al.add(e);
public static Employee findEmp(String number) { for (int i = 0; i < al.size(); i++) { Employee temp = (Employee) al.get(i); if (number.equals(temp.getNumber())) return temp; } return null; }
public static void showInf(String number) { Employee temp = null; temp = findEmp(number); if (temp == null) System.out.println(\查无此人!\ else System.out.println(temp.getName() + \
+ temp.getSal()); } public static void updateSal(String number, float sal) { Employee temp = null; temp = findEmp(number); if (temp == null) System.out.println(\查无此人!\ else { temp.setSal(sal); } } public static void removeEmp(String number) { Employee temp = null; temp = findEmp(number); if (temp == null) System.out.println(\查无此人!\ else { al.remove(temp); } } public static void showAll() { for (int i = 0; i < al.size(); i++) { Employee temp=(Employee) al.get(i); System.out.println(temp.getName() + \ + temp.getSal()); } } }
class Employee { String name; String number; float sal; public Employee(String name, String number, float sal) { super(); this.name = name; this.number = number;
}
}
this.sal = sal;
public Employee() { // TODO Auto-generated constructor stub }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getNumber() { return number; }
public void setNumber(String number) { this.number = number; }
public float getSal() { return sal; }
public void setSal(float sal) { this.sal = sal; }
2、LinkedList
有顺序的添加删除查找,first/last addFirst/addLast removeFirst
3、Vector
Vector vv=new Vector(); vv.add(emp2);
4、Stack
Stack stack=new Stack(); stack.add(emp2);
5、HashMap
通过键值对存储数据。 //创建一个HashMap对象 HashMap hm=new HashMap(); hm.put(\ hm.put(\ //通过键值对查找 if(hm.containsKey(\ { System.out.println(\ Employee emp=(Employee) hm.get(\ } else System.out.println(\
HashMap遍历 // // //
//HashMap遍历所有key和value for (int i = 0; i < hm.size(); i++) { //由于无法知道所有的key,所以该方法不能实现遍历 }
//Iterator迭代器
Iterator it=hm.keySet().iterator();
//hasNext返回下一个key
while (it.hasNext()) { }
//取出key
String key=it.next().toString(); //通过key取出value
Employee emp=(Employee) hm.get(key); System.out.println(emp.getName());
6、Hashtable
Hashtable ht=new Hashtable();
ht.put(\ht.get(\
7、区别
HashMap和Hashtable
一、后者基于陈旧的Dictionary类 二、同步性:
HashMap没有同步机制,是异步的,其对象不是线程安全的; Hashtable是同步的,线程安全的,但效率低一些。
三、值
HashMap可以将空值作为一个条目的key或value. Hashtable不可以。
ArrayList和Vector 一、同步性
Vector是同步的。 ArrayList是异步的。 二、数据增长
如果元素长度超过内部数组长度,Vector缺省情况下自动增加一倍数组长度,ArrayList自动增加50%。
存放大量数据时,采用Vector。
8、总结
如果要求线程安全,使用Vector/Hashtable;