Java ArrayList数组里怎么排序? 您所在的位置:网站首页 string数组排序 Java ArrayList数组里怎么排序?

Java ArrayList数组里怎么排序?

#Java ArrayList数组里怎么排序?| 来源: 网络整理| 查看: 265

0

猪头唛BB

port java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class Sort implements Comparator { private final static int UP = 1; private final static int DOWM = -1; private int state; public Sort(int state) { this.state = state; } public Sort() { } public int compare(String o1, String o2) { if (state == Sort.DOWM) { return sortDown(o1, o2); } return sortUp(o1, o2); } private int sortUp(String o1, String o2) { if (o1.compareTo(o2) < 0) { return -1; } else if (o1.compareTo(o2) > 0) { return 1; } else { return 0; } } private int sortDown(String o1, String o2) { if (o1.compareTo(o2) > 0) { return -1; } else if (o1.compareTo(o2) < 0) { return 1; } else { return 0; } } public static void main(String[] args) { ArrayList array = new ArrayList(); array.add("000001"); array.add("000003"); array.add("000005"); array.add("000004"); array.add("000002"); Collections.sort(array, new Sort(Sort.DOWM)); for (String str : array) { System.out.println(str); } }

2009-03-21 | 添加评论 | 打赏

◆◆

评论读取中....

◆◆

修改失败,请稍后尝试

0

狂吹天下

temp=hxr; //就是这里我不懂啊 引用类型的只是调用引用 这样编写会覆盖掉hxr al.set(i, hxr1); al.set(j, temp); 这段代码是利用中间变量temp把hxr和hxr1交换位置。 解释: ①hxr的初始位置在i,hxr1的初始位置在j ②先把hxr保存在中间变量temp中, ③再把hxr1放在位置i上, ④最后把hxr放在位置j上。 如果没有第②步的话,做第③步时hxr1对象就会把hxr对象覆盖了。补充说明:关于你说的这个:引用类型的只是调用引用 这样编写会覆盖掉hxr 你在Eclipse里面单步调试一下就知道了。做完第③步后,hxr1并没有把temp和hxr覆盖了。这样看的话,没有中间变量temp也能完成交换。出现这样的状况是因为java的引用类型是介于指针和引用之间的一个东西.你把temp=hxr;去掉,并在al.set(i, hxr1);之前加上hxr.tickets = 2之类的话改变hxr的值,这是你再看看hxr的值与List al中第i个的值,再往下执行,好好观察每个变量的数值变换情况。仔细体会一下,很快就会明白了!

2009-03-21 | 添加评论 | 打赏

◆◆

评论读取中....

◆◆

修改失败,请稍后尝试

0

0101501

temp=hxr; //就是这里 不懂啊 引用类型的只是调用引用 这样编写会覆盖掉hxr al.set(i, hxr1); al.set(j, temp); 这段代码是利用中间变量temp把hxr和hxr1交换位置。 解释: ①hxr的初始位置在i,hxr1的初始位置在j ②先把hxr保存在中间变量temp中, ③再把hxr1放在位置i上, ④最后把hxr放在位置j上。 如果没有第②步的话,做第③步时hxr1对象就会把hxr对象覆盖了。补充说明:关于你说的这个:引用类型的只是调用引用 这样编写会覆盖掉hxr 你在eclipse里面单步调试一下就知道了。做完第③步后,hxr1并没有把temp和hxr覆盖了。这样看的话,没有中间变量temp也能完成交换。出现这样的状况是因为java的引用类型是介于指针和引用之间的一个东西.你把temp=hxr;去掉,并在al.set(i, hxr1);之前加上hxr.tickets = 2之类的话改变hxr的值,这是你再看看hxr的值与list al中第i个的值,再往下执行,好好观察每个变量的数值变换情况。仔细体会一下,很快就会明白了!

2009-03-21 | 添加评论 | 打赏

◆◆

评论读取中....

◆◆

修改失败,请稍后尝试

0

elf918

ArrayList不排序    直接按放入顺序排列    要想排序,如楼上所说,用Collections类

2009-03-21 | 添加评论 | 打赏

◆◆

评论读取中....

◆◆

修改失败,请稍后尝试

0

腥鱼草

DisplayField为显示区文本框,JTextFile类型。 PointState为boolean型变量,标记点是否被使用。 M为String型。 String DisplayString = DisplayField.getText(); // 取显示区的数字,String型 String IsPoint = new String(); IsPoint = String.valueOf( DisplayString.charAt( DisplayString.length() - 1 ) ); // 查看当前去掉字符是否为"." if( IsPoint.compareTo( "." ) == 0 ){ PointState = false; } DisplayString = DisplayString.substring( 0, ( DisplayString.length()-1 ) ); if( DisplayString.length() == 0 || ( DisplayString.compareTo( "-" ) == 0 ) ){ DisplayString = "0"; } M = DisplayString; DisplayField.setText( M );

2009-03-22 | 添加评论 | 打赏

◆◆

评论读取中....

◆◆

修改失败,请稍后尝试



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有