使用Swift几年后,我对简单的Java操作感到困惑。
我有一个ArrayList,就像这样
[[],["1","2","3","4"],[],["5","6","7","8"]]
我想遍历列表并删除任何等于[""]的元素。然后,我想在需要时将此元素插入要返回的列表中。
public ArrayList<ArrayList<String>> getWaypointCoordinates(ArrayList<ArrayList<String>> flightplan)
{
ArrayList<ArrayList<String>> finalArray = new ArrayList<>();
// Save all coordinates into one array
for (int i=0; i<flightplan.size(); i++)
{
ArrayList<String> currentPoint = flightplan.get(i);
if (currentPoint != [""])
{
String lat = currentPoint.get(3);
String lng = currentPoint.get(4);
ArrayList<String> currentArray = new ArrayList<String>();
currentArray.set(0, lat);
currentArray.set(1, lng);
finalArray.add(currentArray);
}
else
{
finalArray.add([""]);
}
}
return finalArray;
}
两行出错:
if(currentPoint!= [&#34;&#34;])
finalArray.add([&#34;&#34;])
这是如何在Java中实现的?
谢谢!
编辑:
感谢其他人的帮助,这似乎现在有效:
public ArrayList<List<String>> getWaypointCoordinates(ArrayList<List<String>> flightplan)
{
ArrayList<List<String>> finalArray = new ArrayList<List<String>>();
// Save all coordinates into one array
for (int i=0; i<flightplan.size(); i++)
{
List<String> currentPoint = flightplan.get(i);
if ((currentPoint.size() > 1) && (!currentPoint.get(0).equals("")))
{
String lat = currentPoint.get(3);
String lng = currentPoint.get(4);
ArrayList<String> currentArray = new ArrayList<String>();
currentArray.set(0, lat);
currentArray.set(1, lng);
finalArray.add(currentArray);
}
else
{
//finalArray.add([""]);
finalArray.add(Arrays.asList(""));
}
}
return finalArray;
}
答案 0 :(得分:1)
那些错误只是那里的括号,在java ""
中是一个String
,其中没有任何内容,你只需要这样写:
if (currentPoint != "")
finalArray.add("")
但是当你这样做时,它不适用于if-statement
中的比较。因为在java中,String
不是可以使用==, !=, <, >, >=, <=
运算符进行比较的基本类型变量。它是一个类型变量,可以像它需要的那样,但是当你需要比较Strings
时,你需要使用不同的方法。例子:
String s = "";
String s2 = "so";
String s3 = "";
boolean b;
b = s.equals(s2);
System.out.println(b);
//Will give you false.
b = s.equals(s3);
System.out.println(b);
//Will give you true.
==
运算符不在这种情况下工作的主要原因是它测试引用相等性(它们是否是同一个对象),而.equals()
测试值相等(是否为逻辑上&#34;平等&#34;)。
修改
首次创建finalArray
时,请将其初始化为ArrayList
的{{1}}。这就是为什么当您尝试添加ArrayLists
String
时,它会失败的原因。