无法在数组

时间:2016-01-25 09:12:27

标签: java android arrays

我的数据库中有一个表,它有一些像timetext这样的列...我希望所有条目都存在于单独的字符串数组的任何列中......

我确定两个字符串数组正确地收集条目(使用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];

但是当我尝试用吐司测试它是否正常工作时,它可以正确找到两个(mxtscndmxt)......但是他们的位置不对...有时候是-10 ..有时是0 ad 1 ...

我为其他数组尝试int pos = Arrays.asList(otherArray).indexOf(...);并且它正常工作......但是在这里,我应该将字符串转换为双倍进行比较...任何帮助?!!感谢...

1 个答案:

答案 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];