簡體   English   中英

如何在另一個 Arraylist 中訪問 Arraylist 中的元素?

[英]How do I access an element in an Arraylist inside another Arraylist?

因此,我正在開發一個面向對象的 java 項目,該項目處理航運公司的負載管理。 旅程有起點、地點、內容和目的地。 旅程有一個或多個容器,可以監控容器中的溫度、濕度和壓力。 所以我想獲取給定容器所在的所有旅程(容器的歷史)。 用於任何給定旅程的所有容器都存儲在該旅程的“ containerList ”(arraylist)中。

所以想法是方法“ containerHistory ”應該查看 arraylist“歷史”(包含已完成的旅程),並且對於“歷史”arraylist 中的每個旅程,應該查看每個給定旅程的數組列表“ containerList ”和每個數組列表“ containerList ”中的容器將給定容器的 id 與我們正在尋找的容器進行比較(在下面的代碼中,它將由字符串“ search ”表示

    public ArrayList<Journey> containerHistory(String search, ArrayList<Journey> history){
        ArrayList<Journey> containerhistorylist = new ArrayList<Journey>();
        for(Journey j : history) {
            for(Container c : j.getContainerList()) {
                if (c.getContainerId().contentEquals(search)) {
                    containerhistorylist.add(j);
                }
            }
        }
        return containerhistorylist;        
    }

任何關於如何改進此代碼或解決此問題的替代方法的想法將不勝感激。

如果您對使用 Java 8 個流感到滿意,則可以使用以下代碼:

List<Journey> containerhistorylist = history
    .stream()
    .filter(j -> j.getContainerList()
        .stream()
        .anyMatch(c -> c.getContainerId().contentEquals(search)))
    .collect(Collectors.toList());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM