我需要对一组数据进行操作,数据的结构是这样的样本名 检测日期 检测时间 数据1 数据2 数据3 具体数据例子:
样本1 20130705 15:40:00 1.24 2.45 4.24
样本1 20130705 15:50:00 2.44 4.55 5.66
...
样本2 20130706 13:00 1.2 3.45 45.5
样本2 20130707 14:00 2.3 23.4 3.4一共大概1000个样本,每个样本需要保持200个数据,每天有新数据进来就把最老的同样的样本数据删去。样本名+日期+时间 组合是unique的没重复。 需要排序,先排样本,再排时间
我的这种情况应该选用什么数组形式来弄呢?我是java新手,非常谢谢。
样本1 20130705 15:40:00 1.24 2.45 4.24
样本1 20130705 15:50:00 2.44 4.55 5.66
...
样本2 20130706 13:00 1.2 3.45 45.5
样本2 20130707 14:00 2.3 23.4 3.4一共大概1000个样本,每个样本需要保持200个数据,每天有新数据进来就把最老的同样的样本数据删去。样本名+日期+时间 组合是unique的没重复。 需要排序,先排样本,再排时间
我的这种情况应该选用什么数组形式来弄呢?我是java新手,非常谢谢。
谢谢,我的情况是可以做到没有重复的。保证样品名+日期+时间是每个数据独一无二的。不过我对java的array不熟悉。我这里每个数据既有字符串又有浮点数,这样是可以的么?
我需要对这个数组的前三项排序,就是说先按样品名排,如果名字一样就按日期排,如果日期也一样就按时间排
set和arraylist支持这样的排序么?还是要自己写排序部分?我看了下collections.sort,没有太明白。
java里用数据库方便么?如果是数据库的话,排序啥的就太简单了。
原始数据存在文本文件,开始程序是把文本读进来,把数据split之后放入这个二维数组。
新数据来了之后就加入到数组,然后把样本数据从文本转成浮点,各种处理完了之后,把数组按照名字,日期排序后存回文件。不太明白你说的对象在这里是指什么。不是指一个数据么?
我可以把一个数据定义成一个class的instance。
一个class里面定义name,date,time,data1,data2,data3.
然后在定义这个class的arraylist是么?
java里用数据库方便么?如果是数据库的话,排序啥的就太简单了。java里用数据库方便
恩,1000×200=20w的数据
然后其实还需要几个不同时间区间的表,总之大概1M-2M的数据吧。
我试着存在硬盘上asi码。大概也就几十个MB的样子。这个对现在的pc内存应该没问题吧。所以就不想用数据库了。通过大家说的我基本想明白了,准备定义个对象,把这些数据统统定义在对象里,然后用arraylist的数组来操作他们。
恩,1000×200=20w的数据
然后其实还需要几个不同时间区间的表,总之大概1M-2M的数据吧。
我试着存在硬盘上asi码。大概也就几十个MB的样子。这个对现在的pc内存应该没问题吧。所以就不想用数据库了。通过大家说的我基本想明白了,准备定义个对象,把这些数据统统定义在对象里,然后用arraylist的数组来操作他们。
放在数据库很方便,自己实现操作麻烦。
Map+LinkedList来存放数据。大致代码如下
for(){
LinkedList<Bean> list = new LinkedList<Bean>()
Map<String,LinkedList> map = new HaspMap<String,LinkedList>();//Map<样本名称,样本名称对应的数据>
for(){
list.add(bean);
}
map.put("样本xxx",list);
}
class xxx { 样本名 检测日期 检测时间 数据1 数据2 数据3 }