黑马程序员技术交流社区
标题:
求指导 关于集合排序 希望好心人进来看看
[打印本页]
作者:
刘立波
时间:
2012-10-15 13:26
标题:
求指导 关于集合排序 希望好心人进来看看
一个集合,集合存放的是整形的数据。写一个帮助类,帮组类中有两个static方法,一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序。实现上述的代码。
作者:
黄小贝
时间:
2012-10-15 13:31
可以参考JDK Collections 类中的sort方法
作者:
沈佳龙
时间:
2012-10-15 13:55
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;
}
}
作者:
刘立波
时间:
2012-10-15 16:45
沈佳龙 发表于 2012-10-15 13:55
package it.heimasjl;
public class Sort {
谢谢,但是他要的是集合的排序哦。。。比如ArrayList等
作者:
梁世喜
时间:
2012-10-15 17:32
package com.liang;
import java.util.*;
public class IntListSort{
public static void main(String[] args){
ArrayList<Integer> al=new ArrayList<Integer>();
al.add(12);
al.add(21);
al.add(15);
al.add(102);
al.add(12);
al.add(1222);
al.add(112);
al.add(512);
//Object[] temp=al.toArray();
//Arrays.sort(temp);
Tool.tuUpper(al);
//排序后输出
for(Object x:al){
System.out.println(x);
}
}
}
class Tool {
//升序
public static void tuUpper(ArrayList<Integer> al){
if( al==null)
return;
int[] temp=new int[al.size()];
for(int i=0;i<temp.length;i++){
temp[i]=al.get(i);
}
Arrays.sort(temp);//此处可以自己变代码写实现排序
al.clear();
for(int i=0;i<temp.length;i++){
al.add(temp[i]);
}
}
}
复制代码
这个是我写的升序。注意看我注释的地方。
要是整形集合,可以使用集合对象的Object.toArray()方法获取数组。用Arrays.sort()来排序数组。
作者:
刘立波
时间:
2012-10-15 18:59
package com.itheima;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
/**
* 9、 写一个集合,集合存放的是整形的数据。写一个帮助类,帮组类中有两个static方法,一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序。实现上述的代码。
* @author Administrator
*
*/
public class Test9 {
public static void main(String[] args) {
//存放整形数据的集合
ArrayList list = new ArrayList();
list.add(4);
list.add(5);
list.add(1);
list.add(12);
System.out.println(list.toString());
Util.sortASC(list);
System.out.println(list.toString());
Util.sortDESC(list);
System.out.println(list.toString());
}
}
class Util{
public static void sortASC(ArrayList list){
Collections.sort(list);
}
public static void sortDESC(ArrayList list){
Collections.sort(list, new Comparator<Integer>(){
public int compare(Integer o1, Integer o2) {
if(o1<o2){
return 1;
}
return 0;
}
});
}
}
复制代码
刚刚想出来的办法
作者:
戴进飘
时间:
2012-10-15 20:05
兄弟看,这样行吗
import java.util.Collections;
import java.util.Iterator;
import java.util.Vector;
public class Demo1 {
public static void main(String[] args){
Vector v = new Vector();
v.add("a");
v.add("b");
v.add("c");
v.add("e");
v.add("j");
v.add("g");
v.add("i");
v.add("f");
v.add("h");
Iterator it = v.iterator();
Collections.sort(v);
while (it.hasNext()){
String t = (String) it.next();
System.out.print(t);
}
System.out.println("\r\n...........");
for(int i = v.size()-1;i>=0;i--){
System.out.print(v.get(i));
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2