我无法弄清楚如何比较 ArrayList 的每个单独值。我通过在我要填充的 ArrayList 之前分配一个空的 ArrayList 来做到这一点,但由于某种原因,它在我运行该方法时同时填充了两者。你们中有人知道为什么吗?注意:此代码没有进行比较,但我无法首先填写它们以尝试进行比较。
List<Long> StationsArrayListG7 = new ArrayList<>();
List<Long> StationsArrayListG7a = new ArrayList<>();
public void GetApplicationSpecificUserStats(MBeanServerConnection serverConnectionName) {
StationsArrayListG7a = StationsArrayListG7;
String attrName = "current";
for(String stringName : gSelectedApplicationsFromFile) {
try {
String connectsName = "WowzaMediaServerPro:vHosts=VHosts,vHostName=_defaultVHost_,"
+ "applications=Applications,applicationName=" + stringName + ",name=Connections";
ObjectName connectsObjName = new ObjectName(connectsName);
try {
Long valueObj = (Long)serverConnectionName.getAttribute(connectsObjName, attrName);
valueX = valueObj;
StationsArrayListG7.add(valueX);
} catch (MBeanException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
} catch (AttributeNotFoundException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstanceNotFoundException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
} catch (ReflectionException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("IOException Error has occured!");
}
}
catch (MalformedObjectNameException ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
当我使用单个变量而不是数组进行操作时,它可以正常工作。我无法弄清楚我是否正确分配数组 StationsArrayListG7a = StationsArrayListG7;。我尝试了复制和类似的东西,但它一直给我null。
提前致谢。
更新:替换 StationsArrayListG7a = StationsArrayListG7; 与 StationsArrayListG7a.addAll(StationsArrayListG7); 似乎有帮助。我还不是 100% 确定在我写这篇文章的时候,所以我需要做一些测试。如果您还知道什么,请告诉我:D
UPDATE2:UPDATE 中提到的方法有效。我用来比较的代码是这样的:
for (int i = 0; i < Array1.size(); i++) {
if (Array1.get(i) >= Array2.get(i) + difDrop) {
}
}