Java中的ArrayList不兼容类型
旅行类Java中的ArrayList不兼容类型,java,Java,旅行类 public class GPSping { private double pingLat; private double pingLon; private int pingTime; } 公务舱旅行{ 私有数组列表; 公共旅行(){ pingList=新的ArrayList(); } 公共出行(ArrayList triplist){ pingList=新的ArrayList(); } 公共ArrayList getPingList(){ 返回此.pingLi
public class GPSping {
private double pingLat;
private double pingLon;
private int pingTime;
}
公务舱旅行{
私有数组列表;
公共旅行(){
pingList=新的ArrayList();
}
公共出行(ArrayList triplist){
pingList=新的ArrayList();
}
公共ArrayList getPingList(){
返回此.pingList;
}
公共布尔添加(GPSping p){
int length=pingList.size();
int Time=pingList.get(长度);
if(p.getTime()>this.pingList[length]){
添加(p);
返回True;
}否则{
返回False;
}
}
}
我正在尝试将GPS ping添加到此行程列表,但前提是p的时间晚于此行程列表中的最后一次。我对Java非常陌生,正在绞尽脑汁研究语法,希望能得到一些帮助。列表中的第一个元素有索引
0
,以获取最后一个:
public class Trip {
private ArrayList<GPSping> pingList;
public Trip() {
pingList = new ArrayList<>();
}
public Trip(ArrayList<GPSping> triplist) {
pingList = new ArrayList<>();
}
public ArrayList<GPSping> getPingList() {
return this.pingList;
}
public boolean addPing(GPSping p) {
int length = pingList.size();
int Time = pingList.get(length);
if (p.getTime() > this.pingList[length]) {
pinglist.add(p);
return True;
} else {
return False;
}
}
}
但我认为,在添加新的GPSping
之前,最好存储maxPingTime
以检查它:
int Time = pingList.get(length - 1);
班级旅行{
private final List pingList=new ArrayList();
private int maxPingTime=Integer.MIN_值;
公共列表getPingList(){
返回pingList.isEmpty()?Collections.emptyList():Collections.unmodifiableList(pingList);
}
公共布尔添加(GPSping p){
如果java中的(p.getPingTime()布尔常量的大小写为小写。true
和false
。此外,参数化构造函数也没有意义。您不会将参数分配给类字段(可能您会想这样做)。列表不会用[]-括号编制索引。请使用类似“pinglList.get(index)”的括号(在if语句条件中)pingList.get(length)返回类型为GPSping而不是int的对象。使用此.pingList[length]尝试使用类似数组的列表,这将不起作用。如果需要第n个元素,请使用此.pingList.get(n-1)。
class Trip {
private final List<GPSping> pingList = new ArrayList<>();
private int maxPingTime = Integer.MIN_VALUE;
public List<GPSping> getPingList() {
return pingList.isEmpty() ? Collections.emptyList() : Collections.unmodifiableList(pingList);
}
public boolean addPing(GPSping p) {
if (p.getPingTime() <= maxPingTime)
return false;
pingList.add(p);
maxPingTime = p.getPingTime();
return true;
}
}
final class GPSping {
private final double pingLat;
private final double pingLon;
private final int pingTime;
public GPSping(double pingLat, double pingLon, int pingTime) {
this.pingLat = pingLat;
this.pingLon = pingLon;
this.pingTime = pingTime;
}
}