当前位置:编程学习 > JAVA >>

java升序排序

我有一断程序,但是是刚刚学,还不知道是什么意思,还请高手行行注释,谢谢!~~
public class SortNumString {

public static String[] sortNumStr(String numStr){
if(numStr==null||numStr.trim().equals(""))
return null;
StringTokenizer mToken = new StringTokenizer(numStr);
String[] result = new String[mToken.countTokens()];
int i = 0;
while(mToken.hasMoreTokens()){
result[i] = mToken.nextToken();
i++;
}
return result;
}

public static void main(String[] args){
String[] s = sortNumStr("99 345 8 888 55 0 -9999 30");
int[] ii = new int[s.length];
for(int i = 0;i<ii.length;i++ ){
ii[i] = Integer.parseInt(s[i]);
}
Arrays.sort(ii);//对指定的数进行排序
//ASC
for(int i = 0; i < ii.length;i++){
if (i > 0) {
System.out.print(" ");
}
System.out.print(ii[i]);
}
/* //DESC
for(int i = s.length -1;i>=0;i--){
if (i < s.length-1) {
System.out.print(" ");
}
System.out.print(ii[i]);
}*/
}
}
答案:
public class SortNumString {//定义SortNumString方法
public static String[] sortNumStr(String numStr){// 定义一个String[](数组)为返回值的类并且带参数(String numStr)
if(numStr==null||numStr.trim().equals(""))//if判断如果numStr为空值
return null; //就返回(return)空(null)
StringTokenizer mToken = new StringTokenizer(numStr);//定义变量
String[] result = new String[mToken.countTokens()];//实例化变量把它赋给一个数组
int i = 0;//定义i
while(mToken.hasMoreTokens()){ //进行while循环
result[i] = mToken.nextToken();//从i即0开始从数组取值
i++;//每取出一个值就自增+1取下个值
}
return result;//返回这组值
}

public static void main(String[] args){//主方法
String[] s = sortNumStr("99 345 8 888 55 0 -9999 30");//为这个数组赋值
int[] ii = new int[s.length];//定义数组ii规定长度为String[] result数组的个数
for(int i = 0;i<ii.length;i++ ){//进行for循环 定义i,并且i小于int[] ii数组的长度,每循环一次自增一次i++
ii[i] = Integer.parseInt(s[i]); //为int[]赋值并强转为Integer类型
}
Arrays.sort(ii);//对指定的数进行排序
//ASC
for(int i = 0; i < ii.length;i++){//循环输出int[] ii数组的值
if (i > 0) {//如果i>0
System.out.print(" ");//则输出“ ”
}
System.out.print(ii[i]);//否则输出int[] ii数组的值
}
/* //DESC
for(int i = s.length -1;i>=0;i--){
if (i < s.length-1) {
System.out.print(" ");
}
System.out.print(ii[i]);
}*/
}
}
其实排序JAVA已经给我们做好了,
你只是需要自己去调用|:
声明一个import java.util.Collections;再实现implements Comparator
通过Collections调用new 实现implements Comparator的类就行了
下面是代码:

package 别人的程序的分析设计;

/**
* @author greatwqs
*
*/

import java.util.Collections;
import java.util.*;

public class myQuiz{
public static void main(String[] args) {
Employee e1 = new Employee("Cay",4000);
Employee e2 = new Employee("Bush",6000);
Manager m1 = new Manager ("Alice",5000);
//m1.setBonus(100000);

List<Employee> list_1=new ArrayList<Employee>();
list_1.add(e1);
list_1.add(e2);
list_1.add(m1);

System.out.println("以下按薪水排序后输出[从高到低]");
Collections.sort(list_1,new Qing());
for(Employee e:list_1)
System.out.println(e);

List<Employee> list_2 = new ArrayList<Employee>();
list_2.add(e1);
list_2.add(e2);
list_2.add(m1);

System.out.println("以下按照姓名字典顺序输出:");
Collections.sort(list_2 , new Song());
for(Employee em :list_2){
System.out.println(em);
}
}
}

class Qing implements Comparator{
public int compare(Object obj0, Object obj1){
Employee c0 = (Employee)obj0;
Employee c1 = (Employee)obj1;
if(c0.getSalary() >= c1.getSalary())
return -1;
else
return 1;
}
}

下面还有代码..
其实排序JAVA已经给我们做好了,你只是需要自己去调用|:声明一个import java.util.Collections;再实现implements Comparator通过Collections调用new 实现implements Comparator的类就行了下面是代码:package 别人的程序的分析设计;/** * @author greatwqs  * */import java.util.Collections;import java.util.*;public class myQuiz{public static void main(String[] args) {Employee e1  = new Employee("Cay",4000);Employee e2  = new Employee("Bush",6000);Manager  m1  = new Manager ("Alice",5000);//m1.setBonus(100000);List<Employee> list_1=new ArrayList<Employee>();list_1.add(e1);list_1.add(e2);list_1.add(m1);System.out.println("以下按薪水排序后输出[从高到低]");        Collections.sort(list_1,new Qing());for(Employee e:list_1)    System.out.println(e);List<Employee> list_2 = new ArrayList<Employee>();list_2.add(e1);list_2.add(e2);list_2.add(m1);System.out.println("以下按照姓名字典顺序输出:");Collections.sort(list_2 , new Song());for(Employee em :list_2){System.out.println(em);}}}class Qing implements Comparator{public int compare(Object obj0, Object obj1){Employee c0 = (Employee)obj0;Employee c1 = (Employee)obj1;if(c0.getSalary() >= c1.getSalary())return -1;else return 1;}}下面还有代码..

上一个:如何学好java?
下一个:java学习

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,