Java的比较类特定对象数组排序 [英] Java Comparator class to sort particular object array

查看:100
本文介绍了Java的比较类特定对象数组排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个int数组和字符串数组。 与特定字符串每个浮点值一致。 我想float数组保持使用自己的字符串进行排序:

 公共静态< T>无效排序(T []一,比较和LT ;?超级T> C)
 

下面是code:

 公共类ResultVoiceObject
{

     私人字符串frase;
     私人持股量排名;
     公共ResultVoiceObject(字符串型F,浮动R)
       {
        this.frase = F;
        this.ranking = R;
       }
     }
     公共类VoiceRecognitionDemo扩展活动
     {

       //填充的字符串的wordsList值识别引擎认为它闻
        ArrayList的<字符串>比赛= data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        //金正日排名
        浮动[]得分= data.getFloatArrayExtra(RecognizerIntent.EXTRA_CONFIDENCE_SCORES);

        ResultVoiceObject [] risultati =新ResultVoiceObject [score.length]
        对于(i = 0; I< risultati.length;我++)
        {
            risultati [I] =新ResultVoiceObject(matches.get(i)中,分数[I]);
        }
        ResultVoiceObject [] risultatiDaOrdinare = risultati; // risultati contais ResultVoiceObject元素
                    / *排序* /
        }
 

我如何排序的排名和保持自己的字符串?

多谢了。

解决方案

  ResultVoiceObject []对象= ...
Arrays.sort(对象,新的比较< ResultVoiceObject>(){

    @覆盖
    公众诠释比较(ResultVoiceObject为arg0,ResultVoiceObject ARG1){
        返回Float.compare(arg0.getRanking(),arg1.getRanking());
    }

});
 

I have a float array and a String array. each float value match with a specific String. I would like to sort the float array keeping the own string using :

public static <T> void sort(T[] a,Comparator<? super T> c)

Here is the code:

public class ResultVoiceObject
{

     private  String frase;
     private float ranking;
     public ResultVoiceObject(String f, float r) 
       {
        this.frase=f;
        this.ranking= r;
       }  
     }
     public class VoiceRecognitionDemo extends Activity
     {

       // Populate the wordsList with the String values the recognition engine thought it heard
        ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);          
        //il Ranking
        float[] score= data.getFloatArrayExtra(RecognizerIntent.EXTRA_CONFIDENCE_SCORES);

        ResultVoiceObject[] risultati= new ResultVoiceObject[score.length];
        for (i=0; i<risultati.length;i++)
        {       
            risultati[i]=new ResultVoiceObject(matches.get(i), score[i]);       
        }          
        ResultVoiceObject[] risultatiDaOrdinare= risultati;  // risultati contais ResultVoiceObject elements
                    /*sorting*/
        }

How can I sort by ranking and keeping the own String?

Thanks a lot.

解决方案

ResultVoiceObject[] objects = ...
Arrays.sort(objects, new Comparator<ResultVoiceObject>() {

    @Override
    public int compare(ResultVoiceObject arg0, ResultVoiceObject arg1) {
        return Float.compare(arg0.getRanking(), arg1.getRanking());
    }

});

这篇关于Java的比较类特定对象数组排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆