获取scala映射中的最大值以及键

时间:2018-04-18 06:40:41

标签: scala scala-collections

任何人都可以帮助如何获取地图中的最大值及其键。 例如下面的地图:

public class MainActivity extends AppCompatActivity {
    Button btnTranslate;
    String eng, arabic;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnTranslate= (Button) findViewById(R.id.button_Translate);
        final TextView textEng = findViewById(R.id.text1);
        final TextView textArabic = findViewById(R.id.text2);
        btnTranslate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                eng = textEng.getText().toString();
                arabic = getResources().getString(R.string.source);
                textArabic.setText(arabic);
            }
        });
    }
}

我应该得到键值(q - > 4),因为4是最高的。

我尝试了max方法,键和值迭代器。但是,没有任何一个返回键和值。

3 个答案:

答案 0 :(得分:3)

您可以将maxBy用作

val map_values = Map("s" -> 3, "h" -> 2, "M" -> 1, "q"-> 4)
println(map_values.maxBy(_._2))
//(q,4)

答案 1 :(得分:1)

这对你来说是怎样的?

map.maxBy { case (key, value) => value }

答案 2 :(得分:1)

您可以按照以下方式获得所需内容:

 map.filter{case (k,v) => v == map.values.max}

使用map.values.max获取最大值,并将其插入filter语句中,即可获得整个键值对