我的数据库中有一个表,它有一些像time
和text
这样的列...我希望所有条目都存在于单独的字符串数组的任何列中......
我确定两个字符串数组正确地收集条目(使用toast进行测试!)...我的第一个数组是texts
,第二个是times
...我想找到根据插入time
最后插入的两个文字 ...如果我在time
数组中找到两个最大times
个,使用它们的位置,我可以找到相关文字来自texts
数组......这是我的代码:
double maxtime = 0;
double second_maxtime = 0;
for (int counter = 0; counter < i; counter++) {
if (Double.parseDouble(times[counter]) > maxtime) {
second_maxtime = maxtime;
maxtime = Double.parseDouble(times[counter]);
} else if (Double.parseDouble(times[counter]) > second_maxtime && Double.parseDouble(times[counter]) != maxtime) {
second_maxtime = Double.parseDouble(times[counter]);
}
}
long scndmxt= Math.round(second_maxtime);
String scndmaxt = String.valueOf(scndmxt);
int pos = Arrays.asList(times).indexOf(scndmaxt);
long mxt = Math.round(maxtime);
String maxt = String.valueOf(mxt);
int pos1 = Arrays.asList(times).indexOf(maxt);
String last_text = texts[pos];
String second_last_text = texts[pos1];
但是当我尝试用吐司测试它是否正常工作时,它可以正确找到两个(mxt
和scndmxt
)......但是他们的位置不对...有时候是-1
和0
..有时是0
ad 1
...
我为其他数组尝试int pos = Arrays.asList(otherArray).indexOf(...);
并且它正常工作......但是在这里,我应该将字符串转换为双倍进行比较...任何帮助?!!感谢...
答案 0 :(得分:0)
首先为什么使用Double作为时间戳,你应该使用long。 以下代码可能会帮助您
long maxtime = 0;
long second_maxtime = 0;
int maxPos;
int secondMaxPos;
for (int counter = 0; counter < timestampArray.length; counter++) {
if (Long.parseLong(times[counter]) > maxtime) {
second_maxtime = maxtime;
maxtime = Long.parseLong(times[counter]);
maxPos = counter;
} else if (Long.parseLong(times[counter]) > second_maxtime && Long.parseLong(times[counter]) != maxtime) {
second_maxtime = Long.parseLong(times[counter]);
secondMaxPos = counter;
}
}
String last_text = texts[maxPos];
String second_last_text = texts[secondMaxPos];