首页 > 编程语言 > 详细

Java对大量无序数据获取前N个的源码

时间:2019-06-18 16:40:37      阅读:94      评论:0      收藏:0      [点我收藏+]

工作闲暇时间,将做工程过程中重要的代码片段珍藏起来,下边代码段是关于Java对大量无序数据获取前N个的的代码,希望对大家有帮助。
public class LimitStorageList
{

public LimitStorageList()
{ }

public LimitStorageList(long maxTopN, List<KeyCountPair> list)
{
this.maxTopN = maxTopN;
this.topNList = list;
}

void put(KeyCountPair keyCountPair)
{
{

int index = isExist(keyCountPair);
{
topNList.add(keyCountPair);
insertSort(topNList);
}
else
{
topNList.remove(keyCountPair);
topNList.add(keyCountPair);
insertSort(topNList);
}
}
else
{
{
int index = isExist(keyCountPair);
{
topNList.set(topNList.size() - 1, keyCountPair);
insertSort(topNList);
}
else
{
topNList.remove(keyCountPair);
topNList.add(keyCountPair);
insertSort(topNList);
}
}
}

}

private static void insertSort(List<KeyCountPair> topNList)
{
int i = topNList.size() - 1;
KeyCountPair temp = topNList.get(i);
int j = i - 1;
for (; j >= 0 && (temp.compareTo(topNList.get(j)) == -1); j--)
{
topNList.set(j + 1, topNList.get(j));

}
topNList.set(j + 1, temp);
}

int isExist(KeyCountPair keyCountPair)
{
KeyCountPair keyCountPairTemp;
for (int i = 0, length = topNList.size(); i < length; i++)
{
keyCountPairTemp = topNList.get(i);
if (keyCountPairTemp.getKey().equals(keyCountPair.getKey()))
{
return i;
}
}
return -1;
}
...set,get...
}




 

Java对大量无序数据获取前N个的源码

原文:https://www.cnblogs.com/cottonwood/p/11045876.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!