编写程序测试Java集合框架中各种常用类的 基本操作(包括添加元素,删除元素,遍历集合元素等)
package hm;
import java.util.*;
class Counter{
int i=1;
public String toString(){
return Integer.toString(i);
}
}
class ExampleTreeMap {
Map calendar = new TreeMap(); //用Map声明引用HashMap对象
public ExampleTreeMap(String d[], String i[]){
for (int x=0; x<d.length; x++)
calendar.put(d[x], i[x]); //将元素对加入到map引用的对象当中
}
}
public class test{
public static void main(String[] args){
//ArrayList
try{
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(1);
al.add(2);
al.add(3);
//al.add(3.5);
for(int i=0; i<3;i++){
Integer inte = (Integer)al.get(i);
System.out.println(inte);
}
}
catch(Exception e){
System.out.println("error");
}
//LinkedList
try{
LinkedList<Integer> lst = new LinkedList<Integer>();
for (int i=0 ;i<10 ;i++ ){
lst.addFirst(i);
}
for (int i=0 ;i<10 ;i++ ){
Integer tem =(Integer)lst.removeFirst();
System.out.println(tem.intValue());
}
}
catch(Exception e){
System.out.println("error");
}
//Vector
int b = 0;
Vector<Integer> v = new Vector<Integer>();
System.out.println("Please Enter Number:");
while (true){
try{
b = System.in.read(); }
catch (Exception e){
System.out.println(e.getMessage()); }
if (b== '\r' || b== '\n') break;
else {
int num = b - '0';
v.addElement(num);
}
}
//Enumeration
int sum = 0;
Enumeration<Integer> e = v.elements();
while (e.hasMoreElements()){
Integer intObj = (Integer)e.nextElement();
sum += intObj.intValue();
}
System.out.println(sum);
//Iterator
int sum1 = 0;
Iterator<Integer> i = v.iterator();
while (i.hasNext()){
Integer intObj = (Integer)i.next();
sum1 += intObj.intValue();
}
System.out.println(sum1);
//ListIterator
Integer tem;
try{
LinkedList<Integer> lst = new
LinkedList<Integer>();
for (int i1=0 ;i1<10 ;i1++ ){
lst.add(i1);
}
ListIterator<Integer> ite =
lst.listIterator(10);
while(ite.hasPrevious()){
tem =ite.previous();
System.out.println(tem.intValue());
}//向前遍历
}
catch(Exception er){
System.out.println("error");
}
//Stack
Stack<Integer> stk=new Stack<Integer>();
for(int i2=0;i2<10;i2++)
stk.push(i2); // autoboxing
System.out.println("stk="+ stk);
System.out.println("popping elements:");
while(!stk.empty())
System.out.println(stk.pop());
///Deque
Deque<Integer> stk2 = new ArrayDeque<Integer>();
for(int i2=0;i2<10;i2++)
stk2.push(i2); // autoboxing
System.out.println("stk="+ stk2);
System.out.println("popping elements:");
//Comparator
List<Integer> al = new ArrayList<Integer>();
al.add(1);
al.add(3);
al.add(2);
System.out.println(al);//排序前
Collections.sort(al, new Comparator(){
public int compare(Object o1,Object o2){
return (Integer)o2-(Integer)o1;
}
});
System.out.println(al);//排序后
//Hashtable
Hashtable<Integer,Counter> ht=new Hashtable<Integer,Counter>();
for(int i3=0;i3<10000;i3++){
Integer r=(int)(Math.random()*20);
if(ht.containsKey(r))
((Counter)ht.get(r)).i++;
else
ht.put(r,new Counter());
}
System.out.println(ht);
//TreeMap
String [] dates = {"10/31/01", "01/01/01", "03/05/01", "02/04/01"};
String [] items = {"Halloween", "New Years", "Birthday", "Anniversary"};
ExampleTreeMap example = new ExampleTreeMap(dates, items);
System.out.println("map= " + example.calendar); //打印出map引用对象中的key和value对
Set mappings = example.calendar.entrySet(); //将map中的key/value对映射成set集合
System.out.println("object \t\t\tkey\t\tvalue");
//通过映射后的set集合对元素进行遍历,得到key和value。
for (Iterator i4 = mappings.iterator(); i4.hasNext();) {
Map.Entry me = (Map.Entry)i4.next();
Object ok = me.getKey();
Object ov = me.getValue();
System.out.print(me + "\t");
System.out.print(ok + "\t");
System.out.println(ov);
}
}
}
输出
1
2
3
9
8
7
6
5
4
3
2
1
0
Please Enter Number:
32
5
5
9
8
7
6
5
4
3
2
1
0
stk=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
popping elements:
9
8
7
6
5
4
3
2
1
0
stk=[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
popping elements:
[1, 3, 2]
[3, 2, 1]
{19=494, 18=518, 17=531, 16=503, 15=519, 14=498, 13=484, 12=513, 11=498, 10=490, 9=526, 8=532, 7=496, 6=508, 5=493, 4=453, 3=462, 2=447, 1=558, 0=477}
map= {01/01/01=New Years, 02/04/01=Anniversary, 03/05/01=Birthday, 10/31/01=Halloween}
object key value
01/01/01=New Years 01/01/01 New Years
02/04/01=Anniversary 02/04/01 Anniversary
03/05/01=Birthday 03/05/01 Birthday
10/31/01=Halloween 10/31/01 Halloween