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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一个集合,集合存放的是整形的数据。写一个帮助类,帮组类中有两个static方法,一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序。实现上述的代码。

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

6 个回复

倒序浏览
可以参考JDK Collections 类中的sort方法
回复 使用道具 举报
package it.heimasjl;

public class Sort {
        public static void main(String[] args) {
                int[] a = { 9, 6, 3, 8, 2, 0, 1 };
                int[] b = {5,8,7,4,9,6,2,1};
                Help sort = new Help();
                sort.maxToMin(a);
                sort.minToMax(b);
               
                Sort s  =new Sort();
                s.print(a);
                s.print(b);
       
        }
        private void print(int [] a){
                for(int b:a){
                        System.out.print(b);
                }
                System.out.println();
        }
       
}

class Help {

        public void maxToMin(int[] a) {
                for (int i = a.length - 1; i > 0; i--) {
                        for (int j = 0; j < i; j++) {
                                if (new Integer(a[j]).compareTo(new Integer(a[j + 1])) < 0) {
                                        swap(a, j, j + 1);
                                }
                        }
                }
        }


        public void minToMax(int[] a) {
                for (int i = a.length - 1; i > 0; i--) {
                        for (int j = 0; j < i; j++) {
                                if (new Integer(a[j]).compareTo(new Integer(a[j + 1])) > 0) {
                                        swap(a, j, j + 1);
                                }
                        }
                }

        }
       
        public void swap(int[] a, int x, int y) {
                int temp;
                temp = a[x];
                a[x] = a[y];
                a[y] = temp;
        }
}

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
沈佳龙 发表于 2012-10-15 13:55
package it.heimasjl;

public class Sort {

谢谢,但是他要的是集合的排序哦。。。比如ArrayList等
回复 使用道具 举报
  1. package com.liang;

  2. import java.util.*;

  3. public class IntListSort{
  4.         public static void main(String[] args){
  5.                 ArrayList<Integer> al=new ArrayList<Integer>();
  6.                 al.add(12);
  7.                 al.add(21);
  8.                 al.add(15);
  9.                 al.add(102);
  10.                 al.add(12);
  11.                 al.add(1222);
  12.                 al.add(112);
  13.                 al.add(512);
  14.                 //Object[] temp=al.toArray();
  15.                 //Arrays.sort(temp);
  16.                
  17.                
  18.                 Tool.tuUpper(al);
  19.                 //排序后输出
  20.                 for(Object x:al){
  21.                         System.out.println(x);
  22.                 }
  23.         }
  24.        
  25. }
  26. class Tool {
  27.         //升序
  28.         public static void tuUpper(ArrayList<Integer> al){
  29.                 if( al==null)
  30.                         return;
  31.                
  32.                 int[] temp=new int[al.size()];
  33.                 for(int i=0;i<temp.length;i++){
  34.                         temp[i]=al.get(i);
  35.                 }
  36.                 Arrays.sort(temp);//此处可以自己变代码写实现排序
  37.                 al.clear();
  38.                 for(int i=0;i<temp.length;i++){
  39.                         al.add(temp[i]);
  40.                 }
  41.         }
  42. }
复制代码
这个是我写的升序。注意看我注释的地方。

要是整形集合,可以使用集合对象的Object.toArray()方法获取数组。用Arrays.sort()来排序数组。
回复 使用道具 举报
  1. package com.itheima;

  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.Comparator;


  6. /**
  7. * 9、 写一个集合,集合存放的是整形的数据。写一个帮助类,帮组类中有两个static方法,一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序。实现上述的代码。
  8. * @author Administrator
  9. *
  10. */

  11. public class Test9 {
  12.         public static void main(String[] args) {
  13.                 //存放整形数据的集合
  14.                 ArrayList list = new ArrayList();
  15.                 list.add(4);
  16.                 list.add(5);
  17.                 list.add(1);
  18.                 list.add(12);
  19.                 System.out.println(list.toString());
  20.                 Util.sortASC(list);
  21.                 System.out.println(list.toString());
  22.                 Util.sortDESC(list);
  23.                 System.out.println(list.toString());
  24.         }

  25. }

  26. class Util{
  27.         public static void sortASC(ArrayList list){
  28.                 Collections.sort(list);
  29.         }
  30.        
  31.         public static void sortDESC(ArrayList list){
  32.                 Collections.sort(list, new Comparator<Integer>(){

  33.                         public int compare(Integer o1, Integer o2) {
  34.                                 if(o1<o2){
  35.                                         return 1;
  36.                                 }
  37.                                         return 0;
  38.                                 }
  39.                   });
  40.         }
  41. }
复制代码
刚刚想出来的办法
回复 使用道具 举报
兄弟看,这样行吗
  1. import java.util.Collections;
  2. import java.util.Iterator;
  3. import java.util.Vector;

  4. public class Demo1 {
  5.         public static void main(String[] args){
  6.                 Vector v = new Vector();
  7.                
  8.                 v.add("a");
  9.                 v.add("b");
  10.                 v.add("c");
  11.                 v.add("e");
  12.                 v.add("j");
  13.                 v.add("g");
  14.                 v.add("i");
  15.                 v.add("f");
  16.                 v.add("h");
  17.                
  18.                 Iterator it = v.iterator();
  19.                
  20.                 Collections.sort(v);
  21.                
  22.                
  23.                 while (it.hasNext()){
  24.                         String t = (String) it.next();
  25.                         System.out.print(t);
  26.                 }
  27.                
  28.                 System.out.println("\r\n...........");
  29.                
  30.                 for(int i = v.size()-1;i>=0;i--){
  31.                         System.out.print(v.get(i));
  32.                 }
  33.                
  34.         }
  35. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马