![](/img/trans.png)
[英]How to compare 3 ArrayLists and get the differences in 3 new ArrayLists?
[英]How to get separate Arraylists Instances with other object
在下面的代碼中,我想知道如何使用另一個對象。 具體來說,當我將它們傳遞到 append 方法時,如何讓兩個 ArrayLists 在其中具有不同的值。
下面的代碼應該將兩個 Arraylists 附加在一起而不修改它們中的任何一個。
我知道為了做到這一點,我需要創建一個單獨的 Arraylist“值”實例,這就是我使用另一個對象的原因,但我想知道如何為 Arraylist 的每個實例分配單獨的值
package com.company;
import java.util.ArrayList;
public class MergeSequence {
public ArrayList<Integer> values;
public MergeSequence(){
values = new ArrayList<Integer>();
}
public void add(int n) {
values.add(n);
}
public String toString() {
return values.toString();
}
public MergeSequence append(MergeSequence other)
{
MergeSequence result = new MergeSequence(); // Create a new result object.
// Iterate through the "local" ArrayList and add each value to the result
for (int i = 0; i < values.size(); i++)
{
int j = values.get(i);
result.add(j);
}
// Now, iterate through the "external" ArrayList and add each value to the result
for (int i = 0; i < other.values.size(); i++)
{
int j = other.values.get(i);
result.add(j);
}
result.toString();
// Then return the result. Neither source ArrayList is modified.
return result;
}
}
toString
本身不會向標准輸出輸出任何內容。 所以在調用result.toString();
您不會在控制台中看到結果。 您需要使用System.out.println(result)
來輸出結果。
順便說一下,在append
方法中打印值是一個副作用。 最好在append
之外打印值。 例如:
public static void main(String[] args) {
final MergeSequence a1 = new MergeSequence();
a1.add(1);
a1.add(2);
final MergeSequence a2 = new MergeSequence();
a2.add(3);
final MergeSequence a3 = a1.append(a2);
System.out.println(a1); // [1, 2]
System.out.println(a2); // [3]
System.out.println(a3); // [1, 2, 3]
}
只需添加一個主要方法進行測試
public static void main(String[] args) {
MergeSequence m1 = new MergeSequence();
m1.add(1);
m1.add(2);
MergeSequence m2 = new MergeSequence();
m2.add(3);
MergeSequence m3 = m1.append(m2);
System.out.println(m3.toString());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.