JAVA数组对象排序维护
来源:互联网 发布:灯光编程教学视频 编辑:程序博客网 时间:2024/05/01 10:56
最近学信息可视化这门课时用processing(其编程语言实质就是java)进行编程遇到一个问题:我需要读进来10多万条数据,每一条数据组成一个Node对象,如何从中根据某一个属性读取该最大的前100个对象。
关于里面涉及的排序这个问题,很自然的我们可以用到java自带的排序方法。另一个需要解决的是如何根据数组对象进行排序。
对此,我的想法如下:先读进来前100组数据,存入对象数组中并根据其中一个属性从小大大排序,从后面开始,每次读一组数据,比较第一个数组和这个数据的大小,如果这个数据大于数组top[0],替换,在此排序,如此循环下去。
代码如下,用java实现,还是比较容易的
void insertIpAct(int uid, long destip, String time,long send, long recv,String tdip) { if(count<100){ Node node= new Node(uid,destip,time,send,recv,tdip); top[count]=node; count++; } else { Arrays.sort(top); Node tempnode=top[0]; if(send>tempnode.sendSize){ Node node1= new Node(uid,destip,time,send,recv,tdip); top[0]=node1; } } return;}
Node类代码
class Node implements Comparable{ int uid; long destIp; String accessTime; long sendSize; long recvSize; String dIp; Node(int uid,long destIp, String accessTime,long sendSize, long recvSize,String dIp){ this.uid=uid; this.destIp=destIp; this.accessTime=accessTime; this.sendSize=sendSize; this.recvSize=recvSize; this.dIp=dIp; } public int compareTo(Object object){ Node other=(Node) object; if(this.sendSize==other.sendSize) return 0; if(this.sendSize>other.sendSize) return 1; return -1; }}
其实就是在这个类中implements Comparable,并在其中重写compareTo,这样就可以直接调用java下的Arrays.sort方法了,其实就这们简单。另外
如何读入.csv文件还是比较容易实现的,所以就没有给出代码,以上只是展示了本文所要讨论的最核心的部分。
- JAVA数组对象排序维护
- java对象数组排序
- Java对象数组排序
- java 对象数组排序
- JAVA----对象数组排序
- java-数组,对象排序总结
- Java中对象数组的排序
- Java自定义对象数组、集合排序
- java中的对象数组排序,--Comparable接口
- Java中对象数组初始化和排序
- JAVA对象去重 和数组对象排序
- javascript 对象数组排序
- 对象数组排序
- iOS 数组/对象排序
- iOS对象数组排序
- 对象数组排序
- 对象数组排序
- javascript 对象数组排序
- 套接字和套接口
- 基于TCP的文件传输
- C#指针- unsafe与fixed
- C#指针- 常用手段
- 设计模式之简单工厂模式
- JAVA数组对象排序维护
- Android---->Allapps加载流程详解【AndroidICS4.0——>Launcher系列五】
- Linq Expression 值得注意
- c++计时器
- QT 软键盘
- map下统计单词出现的地方
- 设计模式——34、观察者模式
- Gallery2中Menu的分析
- 苹果笔记本的Windows系统下的VMWARE安装Linux系统问题