gpt4 book ai didi

java - 将刚刚创建的 ArrayList 与之前的进行比较

转载 作者:行者123 更新时间:2023-12-02 00:08:33 25 4
gpt4 key购买 nike

我无法弄清楚如何比较 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; 。我尝试了复制和类似的东西,但它一直给我空值。

提前致谢。

更新:替换 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) {

}
}

最佳答案

该方法中的第一个非空行正在分配 StationsArrayListG7a = StationsArrayListG7;,这意味着两个变量现在引用相同的 ArrayList 对象。

关于java - 将刚刚创建的 ArrayList 与之前的进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13358631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com