题目描述:
代码实现:
主要是实现Comparable接口,并重写compareTo方法,利用数组中的Arrays.sort方法进行排序即可。
package com.test;
import java.util.Arrays;
/**
* 有个字符串数组,string[] str = {A,B,C,D,E,F,G,H};,数组分别对应一个整数数组,int[] a = {3,2,6,4,8,9,1,23};,
* 类似于这样,对整数数组中的数从大到小排序,然后将整数数组对应的字符串数组按序输出,求解java代码的实现方式。
* @author lee
*
*/
public class topNSort {
static class MapTest implements Comparable<MapTest>
{
public String key;
public int value;
/* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
public MapTest(String key,int value)
{
this.key = key;
this.value = value;
}
@Override
public int compareTo(MapTest o) {
// TODO Auto-generated method stub
return o.value - this.value;//将对象按value逆序(从大到小)排序,必须实现Arrays.sort方法这个排序才有用
}
}
static void sort(String[] str,int[] intArray)
{
MapTest[] mapArray = new MapTest[str.length];
for(int i=0;i<mapArray.length;i++)
{
mapArray[i] = new MapTest(str[i],intArray[i]);
}
Arrays.sort(mapArray);
for(MapTest mapt:mapArray)
{
System.out.print(mapt.key+",");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] strArray = {"A","B","C","D","E","F","G","H"};
int[] intArray = {7,5,3,2,6,1,4,9};
for(int i=0;i<strArray.length;i++)
{
intArray[i] = intArray[i] + i + 1;
}
sort(strArray,intArray);
}
}