• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

数组取最大值最小值

1、数组取出最大值,最小值的方式

第一种、

遍历一边数组就可以找出需要的值,基本上可以说是速度最快的算法,还不需要排序

int [] intArray = {1,3,2,4,2,5,2,6,45,7,5,86,5,45,3,867} ;
int max = intArray[0];
int min = intArray[0];
for (int i : intArray) {
max = max>i?max:i;
min = min<i?min:i;
}
System.out.println(max+"-----"+min);//返回的最大值和最小值

 

第二种、

先排序,在取最大最小值

Arrays.sort(intArray.clone());//clone的目的是因为数组本身也是个对象,不想改变它本身的顺序,当然,要是顺序没什么用处,也可以不clone
System.out.println(intArray[intArray.length-1]);//最大值
System.out.println(intArray[0]);//最小值

其实在秦老师的书里,另外我自己也测试了,在1w条数据之内,这两种方法是差不多的,可以说事几乎一样的,

 

2、取出数组第二大值的方式、

这个就要想想了,第二大致不可以能一个,所以位置上取就不太如意了

treeSet  是可以实现删除重复的、

Integer [] intArray = {1,3,2,4,2,5,2,6,45,7,5,86,5,45,3,867} ;

List<Integer> l = Arrays.asList(intArray);
TreeSet<Integer> tl = new TreeSet<Integer>(l);
System.out.println(tl.lower(tl.last()));
//比最大值小的值



最值的计算使用集合是最简单的,使用数组是性能最好的。

---整理自:秦老师的《、、、、151个建议》


 

posted @ 2013-08-23 18:02  Class Xman  阅读(235)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3