Java 访问ArrayList中对的值
如何将最后添加的元素传递给ArrayList,将ArrayList中的I元素传递给Java 访问ArrayList中对的值,java,Java,如何将最后添加的元素传递给ArrayList,将ArrayList中的I元素传递给HaversinedDistance方法,以及如何在HaversinedDistance方法中从它们获取lat1、lat2、long1和long2 我想遍历列表,以确定请求的发送者是否位于列表中某个元素附近 测试等级: @Path("/test") public class Test { private static ArrayList<LatLong> latLongList = new
HaversinedDistance
方法,以及如何在HaversinedDistance
方法中从它们获取lat1、lat2、long1和long2
我想遍历列表,以确定请求的发送者是否位于列表中某个元素附近
测试等级:
@Path("/test")
public class Test {
private static ArrayList<LatLong> latLongList = new ArrayList<>();
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response storeData(Data data) {
String macD = data.getMac();
int routeD = data.getRoute();
float latD = data.getLatitude();
float longD = data.getLongitude();
// Add the lat and Long to the ArrayList.
latLongList.add(new LatLong(latD, longD));
int size = latLongList.size();
if (size > 1) {
for (int i = 0; i < latLongList.size(); i++) {
double distance = haversineDistance(latLongList.get(i),
latLongList.get(latLongList.size() - 1));
if (distance > 4) {
processData(macD, routeD, latD, longD);
} else {
return null;
}
}
} else {
processData(macD, routeD, latD, longD);
}
return Response.status(201).build();
}
private void processData(String macD, int routeD, float latD, float longD) {
Database db = new Database();
db.insertData(macD, routeD, latD, longD);
}
private double haversineDistance(ArrayList<LatLong> x, ArrayList<LatLong> y) {
return 0;
}
}
@Path(“/test”)
公开课考试{
私有静态ArrayList latLongList=新ArrayList();
@职位
@使用(MediaType.APPLICATION_JSON)
公共响应存储数据(数据){
字符串macD=data.getMac();
int routeD=data.getRoute();
float latD=data.getLatitude();
float longD=data.getLongitude();
//将lat和Long添加到ArrayList。
latLongList.add(新LatLong(latD,LONG));
int size=latLongList.size();
如果(大小>1){
对于(int i=0;i4){
processData(macD、routeD、latD、longD);
}否则{
返回null;
}
}
}否则{
processData(macD、routeD、latD、longD);
}
返回Response.status(201.build();
}
私有void processData(字符串macD、整型路由、浮点latD、浮点LONG){
数据库db=新数据库();
db.insertData(macD、routeD、latD、longD);
}
专用双HaversinedDistance(ArrayList x,ArrayList y){
返回0;
}
}
如果您希望您的方法具有相对距离
来计算两点之间的距离,您应该设计方法来接受两点,而不是两点阵列列表。由于点由LatLong
对象表示,因此应将方法更改为:
private double haversineDistance(LatLong x, LatLong y) {
double xLat = x.getLatitude();
double xLng = x.getLongitude();
double yLat = y.getLatitude();
double yLng = y.getLongitude();
// compute haversine distance
double d = ...;
return d;
}
方法
HaversinedDistance(…)
需要两个点列表,这是故意的吗?我想,haversine公式只计算两个单点之间的距离。@isnit2bad:我可以在for lood中传递声明变量lat1,lat2,long1,long2
,但是我如何从ArrayList元素中获取它们呢?同样:你的方法HaversinedDistance(…)
有两个参数,都是列表。这就是你想要的吗?如果它不起作用,我想把四个参数传递给它。四个?我以为你想通过两个点(两个LatLong类型的对象)?