A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ぺsimon☆ 于 2013-5-13 09:55 编辑
  1. /**
  2. 听别人说我这样做有漏洞,但是我没发现,是有漏洞吗,各位兄弟急啊

  3. 第九题: 写一个集合,集合存放的是整形的数据。写一个帮助类,帮助类中有两个static方法,一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序。实现上述的代码。
  4. */

  5. import java.util.*;
  6. class ToolsHelp
  7. {
  8.         public static void sort1(ArrayList<Integer> at)
  9.         {
  10.         Collections.sort(at);
  11.         }

  12.         public static void sort2(ArrayList<Integer> at)
  13.         {
  14.         sort1(at);
  15.         Collections.reverse(at);
  16.         }
  17. }

  18. class Test9
  19. {
  20.         public static void main(String[] args)
  21.         {
  22.         ArrayList<Integer> at=new ArrayList<Integer>();
  23.         at.add(3);
  24.         at.add(26);
  25.         at.add(13);
  26.         at.add(22);
  27.         at.add(12);
  28.         at.add(21);
  29.         
  30.         System.out.println("排序前"+at);
  31.         ToolsHelp.sort2(at);
  32.         System.out.println("从大到小排序后sort2"+at);

  33.         ToolsHelp.sort1(at);
  34.         System.out.println("从小到大排序后sort1"+at);

  35.         
  36.         }
  37. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

7 个回复

倒序浏览
可以,只要功能实现就行了
回复 使用道具 举报
fjl_fight 发表于 2013-5-11 13:19
可以,只要功能实现就行了

但是听人说好像有些漏洞是吗?
回复 使用道具 举报
我也不知道漏洞在哪,不过我觉得方法中传入的是参数最好是List<Integer>吧。
因为你这个方法只能运行ArrayList<Integer>这一个类型的,如果用的是LinkedList<Integer>就不行了。
但这算漏洞吗?应该不是吧。我也不清楚。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
飞鸟青崖 发表于 2013-5-12 12:55
我也不知道漏洞在哪,不过我觉得方法中传入的是参数最好是List吧。
因为你这个方法只能运行ArrayList这一个 ...

为什么用LinkedList<Integer>就不行了?
回复 使用道具 举报
ぺsimon☆ 发表于 2013-5-12 20:54
为什么用LinkedList就不行了?

LinkedList和ArrayList是两个类,而且没有继承、实现关系,所以无法用ArrayList来接收LinkedList。
如果换成List的话就可以,因为LinkedList、ArrayList都是List的子类,这个时候就相当于多态了,这样不但能处理ArrayList类型的,还可以处理LinkedList类型的。
回复 使用道具 举报
飞鸟青崖 发表于 2013-5-12 21:08
LinkedList和ArrayList是两个类,而且没有继承、实现关系,所以无法用ArrayList来接收LinkedList。
如果 ...

哦,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马