逆序打印任何集合中的所有项

   问:编写一个历程,使用集合类API以逆序打印出任何集合中的所有项,不能使用ListIterator

   答:既然要求是任何集合,那就必须编写一个通用的方法,Collection可以泛指集合类,java中可以申明AnyType来予以实现。而要实现逆序,则可以通过栈Stack来达到目的,因为栈是先进后出,通过先将集合类的所有项压入栈,然后再出栈,则可以实现逆序。具体方法代码如下:

   

public static <AnyType> void printReverse(Collection<AnyType>c){
    	 Iterator<AnyType> itr=c.iterator();
    	 Stack<AnyType> sta=new Stack<AnyType>();
    	 while(itr.hasNext()){
    		 sta.push(itr.next());
    	 }
    	 while(!sta.empty()){
    		 System.out.println(sta.peek());
    		 sta.pop();
    	 }
     }

  下面简单的进行测试1:

   

Collection<String> c=new ArrayList<String>();
    	 c.add("jw");
    	 c.add("and");
    	 c.add("wxl");
    	 printReverse(c);

 

   输出为:

   

wxl
and
jw

  

    测试2:

   

Collection<Integer> c1=new PriorityQueue<Integer>();
    	 c1.add(4);
    	 c1.add(3);
    	 c1.add(5);
    	 printReverse(c1);

  输出为:

 

5
4
3

 

通过以上测试可以发现,完全符合要求,只要继承了Collection接口,集合内任意数据类型都可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值