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) {
}
}