我想在每个列表中放入具有相同id的元素,然后将所有这些列表放到一个列表中,这是我的表,如图所示" SQL请求的图像结果& #34;重复id = 1,所以我希望有一个Java列表,其中只包含id = 1的元素,以及另一个id = 2的Java列表...... Image Result of SQL request
这是我不完整的代码:
//Calculate Distance Traveled of a device in a specified 2 dates VERSION 2
public void getDistanceTraveled2(Date StartDate,Date EndDate) {
boolean exist=false;
allDeviceList = (ArrayList<Device>) deviceBean.getListalldevice();// Get list of all device
for(int i=0;i<allDeviceList.size();i++)
{
List<Eventdata> list = deviceBean.getLatAndLongDeviceId(); // get the id lat and long for each device
List<Eventdata> list2 = new ArrayList<Eventdata>();
while (list.size()!=0){
String idCourant = list.get(i).getDevice().getDeviceid(); // get the first id
String idNext = list.get(i+1).getDevice().getDeviceid(); // get the second id
if (idCourant == idNext)
{
//double distance = Point2D.distance(x1, y1, x2, y2);
double distance = Point2D.distance(list.get(i).getLatitude(),list.get(i).getLongitude(),list.get(i+1).getLatitude(),list.get(i+1).getLongitude());//Calculate distance
list2.add((Eventdata) Arrays.asList(idCourant, distance)); // store id and distance into a list
}
else {
exist=true;
break;
}
}
}
}
答案 0 :(得分:0)
生成每个id的列表太多而且O(n)相当大的动作..
而是创建一个“GeoDevice”类机智id,lat,long和实现可比较 所以你可以按id排序。
然后当你得到sql答案时,创建一个GeoDevices列表然后再排序 通过对象中的ID浏览它来获取所需的一切......
答案 1 :(得分:0)
您可以使用Map作为Integer,将Value作为ResultBean列表
Map<Integer, List<ResultBean>> map= new HashMap<Integer, List<ResultBean>>();
List<ResultBean> resultList = new ArrayList<ResultBean>();
// fetch data in rsultList by ID from table
map.put(1, new ArrayList<ResultBean>());
答案 2 :(得分:0)
我们可以将位置数据封装在名为&#34; Location&#34;。
的类中class Location{
private double latitude;
private double longitude;
public Location(double latitude, double longitude){
this.latitude = latitude;
this.longitude = longitude;
}
public String toString(){
return this.latitude+","+this.longitude;
}
}
然后我们可以将数据存储在数据结构中,如下所示: -
Map<Integer,List<Location>> locationData = new HashMap<>(); // Java 7 or above