【发布时间】:2016-12-23 04:42:00
【问题描述】:
我有一个模型:
public class Unprocessed_DistanceTime_D {
private String lat;
private String lng;
private String date;
private String time;
private String counts;
private String userCode;
public String getLat() {
return lat;
}
public void setLat(String lat) {
this.lat = lat;
}
public String getLng() {
return lng;
}
public void setLng(String lng) {
this.lng = lng;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getCounts() {
return counts;
}
public void setCounts(String counts) {
this.counts = counts;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
}
我用下面的数据填充我的模型:
DATE TIME LAT LNG COUNT
1395/04/26 12:13:44 34.6117392 50.8548033 7
1395/04/26 12:13:49 34.6117392 50.8548033 7
1395/04/26 12:13:58 34.6117392 50.8548033 7
1395/04/26 12:14:00 34.6117392 50.8548033 7
1395/04/26 12:14:22 34.6117392 50.8548033 7
1395/04/26 12:14:44 34.6117392 50.8548033 7
1395/04/26 12:14:49 34.6117392 50.8548033 7
1395/04/26 12:14:58 34.6113533 50.8551068 27
1395/04/26 12:14:58 34.6113533 50.8551068 27
1395/04/26 12:15:00 34.6113533 50.8551068 27
1395/04/26 12:15:22 34.6113533 50.8551068 27
1395/04/26 12:15:35 34.6322184 50.8596414 9
1395/04/26 12:15:44 34.6113533 50.8551068 27
1395/04/26 12:15:49 34.6113533 50.8551068 27
1395/04/26 12:15:58 34.6113533 50.8551068 27
1395/04/26 12:15:58 34.6113533 50.8551068 27
1395/04/26 12:16:00 34.6113533 50.8551068 27
1395/04/26 12:16:09 34.6322184 50.8596414 9
1395/04/26 12:16:22 34.6113533 50.8551068 27
1395/04/26 12:16:44 34.6113533 50.8551068 27
1395/04/26 12:16:49 34.6113533 50.8551068 27
1395/04/26 12:16:58 34.6113533 50.8551068 27
1395/04/26 12:16:58 34.6113533 50.8551068 27
1395/04/26 12:17:00 34.6113533 50.8551068 27
1395/04/26 12:17:22 34.6113533 50.8551068 27
1395/04/26 12:17:44 34.6113533 50.8551068 27
1395/04/26 12:17:49 34.6113533 50.8551068 27
1395/04/26 12:17:58 34.6113533 50.8551068 27
1395/04/26 12:17:58 34.6113533 50.8551068 27
1395/04/26 12:18:00 34.6113533 50.8551068 27
1395/04/26 12:18:22 34.6113533 50.8551068 27
1395/04/26 12:18:38 34.6322184 50.8596414 9
1395/04/26 12:18:44 34.6113533 50.8551068 27
1395/04/26 12:18:49 34.6113533 50.8551068 27
1395/04/26 12:18:51 34.6322184 50.8596414 9
1395/04/26 12:18:58 34.6113533 50.8551068 27
1395/04/26 12:18:58 34.6113533 50.8551068 27
1395/04/26 12:19:00 34.6113533 50.8551068 27
1395/04/26 12:19:01 34.6113415 50.8562128 22
1395/04/26 12:19:22 34.6113415 50.8562128 22
1395/04/26 12:19:44 34.6113415 50.8562128 22
1395/04/26 12:19:49 34.6113415 50.8562128 22
1395/04/26 12:19:58 34.6113415 50.8562128 22
1395/04/26 12:19:58 34.6113415 50.8562128 22
1395/04/26 12:20:00 34.6113415 50.8562128 22
1395/04/26 12:20:01 34.6113415 50.8562128 22
1395/04/26 12:21:41 34.6322184 50.8596414 9
1395/04/26 12:22:32 34.6113415 50.8562128 22
1395/04/26 12:22:36 34.6322184 50.8596414 9
1395/04/26 12:25:00 34.6113415 50.8562128 22
1395/04/26 12:25:04 34.6113415 50.8562128 22
1395/04/26 12:25:13 34.6113415 50.8562128 22
1395/04/26 12:25:13 34.6113415 50.8562128 22
1395/04/26 12:25:16 34.6113415 50.8562128 22
1395/04/26 12:25:16 34.6113415 50.8562128 22
1395/04/26 12:25:37 34.6113415 50.8562128 22
1395/04/26 12:25:37 34.6322184 50.8596414 9
1395/04/26 12:26:00 34.6113415 50.8562128 22
1395/04/26 12:26:04 34.6113415 50.8562128 22
1395/04/26 12:26:13 34.6113415 50.8562128 22
1395/04/26 12:26:20 34.6113415 50.8562128 22
1395/04/26 12:26:38 34.6113415 50.8562128 22
1395/04/26 12:26:38 34.6322184 50.8596414 9
1395/04/26 12:26:39 34.6113415 50.8562128 22
1395/04/26 12:29:46 34.6322184 50.8596414 9
我写了下面的代码,但不适用于我获取相同的第一个和最后一个项目的索引,我使用你的代码,但我无法得到真正的答案。 我的数据是排序基准时间,我不喜欢更改它我应该在不更改的情况下处理这些数据。
我的代码在这里:
public class ComputeDetailMoreActivity_E extends AppCompatActivity {
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_computedetailmore);
int count = 1;
int X = 2;
boolean flag = true;
int index1 = -1;
int index2 = -1;
Integer counter = 0;
for (int i = 0; i < listCDM.size() - 1; i++) {
if (listCDM.get(i).getDate().equalsIgnoreCase(listCDM.get(count).getDate()) &&
listCDM.get(i).getLat().equalsIgnoreCase(listCDM.get(count).getLat()) &&
listCDM.get(i).getLng().equalsIgnoreCase(listCDM.get(count).getLng()) &&
listCDM.get(i).getCounts().equalsIgnoreCase(listCDM.get(count).getCounts())) {
if (flag) {
index1 = i;
flag = false;
counter++;
}
} else {
if (X < listCDM.size()) {
if (!listCDM.get(count).getLat().equalsIgnoreCase(listCDM.get(X).getLat()) &&
!listCDM.get(count).getLng().equalsIgnoreCase(listCDM.get(X).getLng()) &&
!listCDM.get(count).getCounts().equalsIgnoreCase(listCDM.get(X).getCounts())||
!listCDM.get(count).getDate().equalsIgnoreCase(listCDM.get(X).getDate())) {
Log.i("ADFASFEWRWE", "C : " + listCDM.get(X).getCounts() + "**" +
listCDM.get(X).getTime());
index2 = i;
Log.i("ASDASRDWE",i + "");
int error = count;
counter = 2;
}
if (listCDM.get(count).getLat().equalsIgnoreCase(listCDM.get(X).getLat()) &&
listCDM.get(count).getLng().equalsIgnoreCase(listCDM.get(X).getLng()) &&
listCDM.get(count).getCounts().equalsIgnoreCase(listCDM.get(X).getCounts()) &&
listCDM.get(count).getDate().equalsIgnoreCase(listCDM.get(X).getDate())) {
index2 = i;
flag = true;
counter++;
}
Log.i("RRTTGGTT", counter + "");
if (counter == 2) {
Log.i("ASDWERWEDAVVGG", index1 + " : " + index2);
flag = true;
counter = 0;
index1 = -1;
index2 = -1;
}
}
}
count++;
X++;
}
}
}
我的输出是:
7 : 6
7 : 10
12 : 16
18 : 30
32 : 33
38 : 45
-1 : 46
-1 : 47
49 : 55
57 : 61
-1 : 62
【问题讨论】:
-
您的问题不清楚,请描述您的需求
-
请提供您目前尝试过的代码。 SO不是一些代码提供网站。它是一个解决问题的平台
-
这似乎是一个纯 Java 问题,因此这里不需要 Android 标签。
-
@EJK 。我在 android studio 工作。
-
这不会以任何方式影响解决方案。无论您使用哪种 IDE,代码都是相同的。
标签: java loops for-loop arraylist foreach