我有一個數組列表的數組,我想做一個單獨的視圖,它會過濾某些東西,並將其存儲在某處以備後用。我正在計劃使用數組列表的數組列表,並想知道數組列表是否有方法可以連接在一起,哪裏的變化反映了另一個?有什麼想法嗎 ?它就像一張excel表格,我想過濾掉某些數字,然後我將顯示同一張表格的另一個視圖,而不會真正更改原始表格。請幫忙。連接多個arraylist到一個單一的數組列表
2
A
回答
0
根據你對問題的解釋,你可以保留一個排序列表..然後做一個子集(探索導航集,看看它是如何實現的)..將你的子集包裝成一個不可修改的列表或一個新的列表,每當你暴露它。 如果您希望遇到重複項,您還可以使用排序/可導航地圖..因此,地圖中的值可以是重複項的數量。現在,當您查詢此地圖的頭部或尾部以返回視圖時,您可以使用重複數量來獲得所需的列表。
NavigableSet<Integer> orderedSet = new ConcurrentSkipListSet<Integer>(Arrays.asList(new Integer[] {11, 20, 32, 14,
5})); // or tree set if thread safety is not a concern.
orderedSet.headSet(20); // will give you integers upto 20 i.e. [5, 11, 14]
1
這是一個完整的,可執行的演示給你。你應該能夠編譯並按原樣運行。我沒有添加評論或錯誤檢查,但它應該做你所要求的。我不知道列表清單是否適合您當前的情況。事實上,您的行同時具有名稱和年齡,這讓我認爲您不需要列表列表,而是需要特定類的行對象列表。 (或者,您可以在任何地方使用List<?>
或List<Object>
....)
儘管如此,您可能會對以下內容感興趣。您可能可以使用它,或者它可能會讓您遠離列表清單方法。 :)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* A ragged 2-D table of strings that supports "views" (arbitrary rows).
*
* WARNING: no error checking. This is just a sketch.
*/
public class Table {
private List<List<String>> data;
private List<Integer> activeRows = new ArrayList<Integer>();
public Table(List<List<String>> data) {
this.data = data;
}
public void setActiveRows(List<Integer> activeRows) {
this.activeRows = activeRows;
}
public void update(int row, int column, String value) {
data.get(row).set(column, value);
}
public void show() {
for (Integer row: activeRows) {
System.out.println(data.get(row));
}
}
/**
* DEMO. Normally we don't put main methods inside a class. This is just a sketch.
*/
public static void main(String[] args) {
List<List<String>> a = Arrays.asList(
Arrays.asList("abc", "def", "ghi"),
Arrays.asList("ABC", "DEF", "GHI"),
Arrays.asList("zzz", "yyy", "xxx"),
Arrays.asList("dog", "cat", "rat")
);
// Make two tables that share the same data
Table t1 = new Table(a);
Table t2 = new Table(a);
// t1 will have all four rows; t2 just two of them.
t1.setActiveRows(Arrays.asList(0, 1, 2, 3));
t2.setActiveRows(Arrays.asList(1, 3));
// Show them
t1.show();
System.out.println();
t2.show();
System.out.println();
// Now change part of t1 and show that this is reflected in t2.
t1.update(1, 2, "NEWVALUE");
// And show them again
t1.show();
System.out.println();
t2.show();
System.out.println();
}
}
輸出是:
[abc, def, ghi]
[ABC, DEF, GHI]
[zzz, yyy, xxx]
[dog, cat, rat]
[ABC, DEF, GHI]
[dog, cat, rat]
[abc, def, ghi]
[ABC, DEF, NEWVALUE]
[zzz, yyy, xxx]
[dog, cat, rat]
[ABC, DEF, NEWVALUE]
[dog, cat, rat]
相關問題
- 1. 多個連接到一個列表中
- 2. Java ArrayList - 項連接到另一個ArrayList
- 3. 如何將多個單個數組連接成一個大型單個數組
- 4. 使用一個ArrayList轉換一個ArrayList的子列表到一個ArrayList
- 5. 將一系列數組連接到一個「父」數組(AngularJS)
- 6. 多個連接到同一個表
- 7. 將多個列連接到一列
- 8. 將一個表中的多個列連接到另一個表中的單個列
- 9. MatLab:連接一個數組的2列
- 10. 將一個數組的兩列連接成一個新列
- 11. 多的ArrayList的快速聚集到一個單一的一個
- 12. 替代GROUP_CONCAT?多個連接到同一個表,不同的列
- 13. 將兩個表連接到更多連接到連續的同一個表
- 14. MYSQL連接一個表到另一個單個表多次最佳途徑
- 15. Oracle:多個連接到一列上
- 16. 多維arraylist無法插入另一個數組列表
- 17. 如何在一個ArrayList多維數組列表
- 18. 連接列表到單個列表中
- 19. 多個連接到多個表的第一個查詢
- 20. 連接兩個表 - 多列單列
- 21. 一個數組列表鏈接到另一個
- 22. 多個左連接到單個表
- 23. Python的多維數組作爲一個單一的列表
- 24. 休眠連接到同一個表的多個數據庫
- 25. 整合多個Java的ArrayList到一個單一的JSON對象
- 26. 從一個ArrayList中複製特定項目到另一個數組列表
- 27. 在一個數組中連接多個numpy數組?
- 28. SQL Server - 兩個連接到同一列上的同一個表
- 29. SQL - 多個連接到一個表 - 兩個鍵的兩個值
- 30. 從另一個表中的一個表加入多個列到單個列
什麼你問當然可以做到,但如果你給更多的背景下,以你想要做什麼,我敢打賭,一個更好的解決方案可以被發現。任何時候你發現自己想要一個「藏品集合」,你可能需要一個更深思熟慮的方法。 – corsiKa
沒關係,所以我有一張包含姓氏名字和年齡的表格。在那張表中,我有1到90歲,但我只想要8歲以下的人,所以這個新的「觀點」必須反映這一點。 – Ashley
你能舉一些文字的例子嗎? –