gpt4 book ai didi

java - java中二元关系的表示

转载 作者:行者123 更新时间:2023-12-01 15:05:28 25 4
gpt4 key购买 nike

一位著名的程序员说过“为什么有人需要数据库,只要给我哈希表就可以了!”。我有语法符号及其频率列表。一种方式是映射:符号#->频率。另一种方式是[二元]关系。问题:按频率获取前 5 个符号。

更一般的问题。我知道[二元]关系代数正在慢慢进入计算机科学理论。有java库支持关系吗?

最佳答案

 List<Entry<String, Integer>> myList = new ArrayList<...>();
for (Entry<String, Integer> e : myMap.entrySet())
myList.add(e);

Collections.sort(myList, new Comparator<Entry<String, Integer>>(){

int compare(Entry a, Entry b){
// compare b to a to get reverse order
return new Integer(b.getValue()).compareTo(new Integer(a.getValue());
}
});

List<Entry<String, Integer>> top5 = myList.sublist(0, 5);

更高效:

 TreeSet<Entry<String, Integer>> myTree = new TreeSet<...>(
new Comparator<Entry<String, Integer>>(){

int compare(Entry a, Entry b){
// compare b to a to get reverse order
return new Integer(b.getValue()).compareTo(new Integer(a.getValue());
}
});
for (Entry<String, Integer> e : myMap.entrySet())
myList.add(e);

List<Entry<String, Integer>> top5 = new ArrayList<>();
int i=0;
for (Entry<String, Integer> e : myTree) {
top5.add(e);
if (i++ == 4) break;
}

关于java - java中二元关系的表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com