`
jw271052784
  • 浏览: 29695 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

 
阅读更多

   问:编写一个历程,使用集合类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接口,集合内任意数据类型都可以。

分享到:
评论

相关推荐

    C语言中字符串实现正序与逆序实例详解

    对字符串的操作是C语言编程中的一项基本技能,对字符串的正序和逆序操作是其中的一部分。 在C语言中,字符串可以用多种方式实现正序和逆序操作。其中的一种方式是使用链表结构来存储字符串,然后对链表进行遍历以...

    基础算法题目精简集合

    ### 基础算法题目精简集合解析 #### 第一章 循环控制 ##### 题目1:输出特定格式的菱形 - **题目描述**:输入一个奇数`n`,输出一个对角线长度为`n`的实心或空心菱形图案。 - **解题思路**: - 使用双重循环结构...

    剑指offer(牛客网)

    18. 顺时针打印矩阵:按照顺时针的方向打印出矩阵中的所有元素。 19. 包含min函数的栈:实现一个栈,在其中增加min函数,可以获得栈中最小值。 20. 栈的压入、弹出序列:输入两个序列,判断第二个序列是否为第一个...

    算法分析与设计(陈慧南)第二章重点程序

    最后,实验还包括了设计并打印4个元素的集合{a, b, c, d}的所有可能排列,这再次展示了递归算法的应用,通过递归地将元素分配到剩余位置来生成所有排列。 总的来说,这个实验报告涵盖了基本的算法设计和实现,包括...

    WORD快捷键-个人搜集

    12. Ctrl+向下键:显示所有命令集合,适用于缩短的菜单。 13. Alt+Ctrl+=(等号):将工具栏按钮添加到菜单,自定义工作流程。 14. Alt+Ctrl+-(减号):从菜单中删除命令,但可以恢复。 15. Alt+Ctrl++(数字小键盘上的...

    list遍历的五种方法

    在 Java 编程中,遍历 List 集合是一项常见的任务,特别是在处理数据或执行迭代操作时。这里,我们详细探讨了五种遍历 List 集合的方法,并结合 List 接口概述来理解其核心特性。 1. **普通 for 循环遍历** 这是最...

    《Python Cookbook》第三版繁體中文

    1.10 删除序列相同元素并保持顺序:去除序列中的重复项,同时保留元素的原始顺序。 1.11 命名切片:创建带有名称的切片对象,以简化代码。 1.12 序列中出现次数最多的元素:找出序列中出现频率最高的元素。 1.13 ...

    Leetcode Solutions

    - **Java I/O**:对于涉及输入输出的问题,比如逆序打印数字等,需要掌握Java的I/O操作。 - **泛型**:在集合操作中经常使用泛型来提供更灵活的数据处理。 - **动态代理**:在设计模式、编程练习中,可能会涉及...

    Python技术数据结构介绍.docx

    可以通过成员运算符`in`检查元素是否存在于集合中。 **操作示例**: ```python # 创建两个集合 set1 = {1, 2, 3, 4} set2 = {3, 4, 5, 6} # 执行集合的交集操作 print(set1.intersection(set2)) # 输出:{3, 4} #...

    03_SparkRDD(RDD编程实战)

    接下来,我们提取每行中的IP地址,并使用`distinct`操作去除重复项,将每个IP映射为("UV", 1)的元组。最后,我们再次使用`reduceByKey`进行聚合,将所有("UV", 1)元组按键相加,然后将结果保存到"out"目录下。 3. ...

    2021-2022计算机二级等级考试试题及答案No.16235.docx

    3. **Word页面设置**:在Microsoft Word中,设置纸张大小是在“页面设置”对话框中完成的,可以调整文档的打印尺寸。 4. **MySQL备份数据库语句**:`INTO OUTFILE`语句用于将查询结果导出到文件,字段值由双引号...

    java笔试题.pdf

    1. **字符串逆序**:在Java中,`StringBuffer`类提供了`reverse()`方法,可以方便地将字符串中的字符顺序反转。在示例中,创建了一个`StringBuffer`对象,将字符串"abcdefg"赋值给它,然后调用`reverse()`方法,最后...

    java经典50题

    **知识点**:最大值和最小值是比较数组或集合中元素大小的基本操作。本题要求找出两个数中的最大值和最小值,需要理解比较运算符和变量赋值的使用。 #### 题目七:字符统计 **知识点**:字符统计涉及读取文本并统计...

    微软、谷歌、百度等公司经典面试100题[第101-170题].pdf

    - **题目描述**:给定一个集合A和一个正整数K,用A中的元素组成一个大于K的最小正整数。 - **解决方案**:可以使用贪心算法,每次选择最大的可用数字加入结果中。 #### 百度三道面试题详解 **24. 字符串逆序** - ...

    C++ 单链表的基本操作(详解)

    单链表是计算机科学中一种常见的数据结构,它在C++编程中被广泛用于处理动态数据集合。在本文中,我们将深入探讨C++实现单链表的基本操作,包括创建、插入、删除节点以及链表的逆序。 1. **概念** 单链表是一种...

    编译原理LL(1)文法分析报告器实验(java).doc

    - 当栈顶为非终结符时,查找预测分析表中相应的产生式,将其右侧的符号逆序压入栈中。 - 当栈顶为文法开始符号并且输入流为空时,表示语法分析成功。 ##### 3. 本实验的具体文法 本次实验使用的文法如下: - E →...

    Perl Notes For Professionals.pdf

    - **单行注释:** 使用`#`符号开始,直到行尾的所有内容都被视为注释。 - **多行注释:** Perl不支持原生的多行注释,但可以通过嵌套单行注释或使用字符串技巧实现多行注释。 - **变量类型与声明:** - **标量...

    谷Office_2007_培训教材(上).

    有时,为了方便装订或阅读,可能需要逆序打印文档。Word 2007 的打印设置中提供了这一选项。 ##### 2.1.2 打印同一文档时使用不同的页面方向 在某些情况下,可能需要在同一文档的不同部分使用纵向和横向页面方向。...

Global site tag (gtag.js) - Google Analytics