问:编写一个历程,使用集合类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接口,集合内任意数据类型都可以。
分享到:
相关推荐
WORD文档当页数较多时(如100多页),打印时容易出现不能一次性全部打印出来的问题(与打印机有关系,如佳能LBP-880就会出现),这时...这个word逆序打印宏就是用于解决这个问题,按照文档中的介绍操作保证可用!!!
# 二、逆序打印出各位数字。 def f(n): m = map(int, n) print "该数为%d位数"%len(m) m.reverse() for i in m: print i, if __name__=="__main__": n=raw_input("请输入一个多位数的正整数:") f(n) 运行...
# 题目: # 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 # 分析: # 学会分解出每一位数。
Word逆序打印只打印选定内容技巧.docx
Word逆序打印 只打印选定内容小技巧.docx
Word逆序打印,只打印选定内容技巧.docx
Excel2021文档逆序打印设置.docx
C语言求整数位数并逆序打印每一位数字
使用宏逆序打印Excel2021工作表.docx
vb中逆序输出 很经典的例题~~浅显易懂的描述
逆序reverse_iterator打印 /* 编写一段程序,用普通迭代器顺序打印一个vector,再用逆序reverse_iterator打印一个它 */
用宏来完成Excel2021工作表的逆序打印.docx
先要创建一个新数组 newArray[],要求新数组中的元素与原数组逆序,并且如果原数组中的元素值小于0,在新数组中按0存储。试编程输出新数组 中的元素,程序运行结果如下: 原数组为:1,3,-1,5,-2 逆序并处理后的数组为...
逆序 逆序 逆序 逆序 逆序 逆序 逆序 逆序 逆序 逆序
统计数组中的逆序对的个数,基于归并排序的思想,先拆分为单个元素,再合并为两个元素的数组,组内统计后,排序,进行组建统计
一个算法题的Java实现:给一个不多于5位的正整数, 要求:一、求它是几位数,二、逆序打印出各位数字。用两种方法实现。
c语言实现单词逆序 单词内部不逆序 比如: i am from shanghai 变为 shanghai from am i
逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出数字.cpp逆序输出...
VB 元素逆序存放 VB 元素逆序存放 VB 元素逆序存放
求逆序数的方法很多。最容易想到的办法是分别对序列中每一个元素求其逆序数,再求所有元素的逆序数总和,易分析得出这样的方法其时间复杂度为O(n2)。而这里采用的分治法求逆序数,其时间复杂度为O(nlogn)。