根据数据最后一个字段正负判断方向,增加数字字段进行表示!?

数据格式如图片所示图片说明,字段分别是:用户id,时间,经度、纬度、行驶距离(正负代表方向)。若该用户行驶距离字段连续出现两个相同符号,则该用户行驶方向发生改变。
最后的结果是1-18行为一个方向,标识符为1,19-20行为一个方向,标识符为2,21-25行为一个方向,标识符为3,26-29行为一个方向,标识符为4。
求大佬!!给出详细java代码,小白求学习!!!

最后的结果:图片说明

为什么连续出现两个相同符号,则行驶方向发生改变?

根据你的题目应该是用异或可以做。5^4=1,5^(-1)=-6, (-1)^(-5)=4,((-1)^(-1))=0 5^5=0。
就是说:正数^正数=正数,正数^负数=负数,负数^负数=正数,(自己)^(自己)=0。

list是你这些信息的列表集合,

if(list.get(0).get行驶距离字段() * list.get(17).get行驶距离字段()>0){
     标识 = 1;
}else if(list.get(18).get行驶距离字段() * list.get(19).get行驶距离字段()>0){
     标识 = 2;
}else if(list.get(20).get行驶距离字段() * list.get(24).get行驶距离字段()>0){
     标识 = 3;
}else if(list.get(25).get行驶距离字段() * list.get(28).get行驶距离字段()>0){
     标识 = 4;
}

是不是这个意思

  //初始化标志为1
        int  flag = 1;
        //遍历所有行数据
        for(int i = 0; i<List.size()-2; i++){
            //给每行记录设置标识
            List.get(i).setFlag(flag);

            //如果第i行和第i+1,i+2行相乘都小于0,说明方向变了,标识加1
            if(List.get(i).getDistance()*List.get(i+1).getDistance()<0 && List.get(i).getDistance()*List.get(i+2).getDistance()<0){
                flag++;
            }
        }

这样OK了吧,自己加上如果行驶距离一直为0时的逻辑,就好了