簡體   English   中英

在Java中關聯兩個數組列表中的項目

[英]Correlating items from two arraylists in Java

在我的Android應用程序中,我有一個包含類別名稱的微調框(下拉菜單)。 用戶通過名稱選擇類別,例如說“食品和飲料”

這些類別包含在ArrayList categoryNamesArray中

還有另一個ArrayList categoryIDsArray,其中包含類別ID整數。

這兩個匹配項的排序,意味着類別1應該是汽車類別。

當用戶通過名稱選擇類別時,我需要將類別ID發送到數據庫。 我怎樣才能做到這一點。

對於子類別,它變得更加復雜,因為其ID以40開頭。

在此處輸入圖片說明

附加信息:

我從服務器中提取ID,並將其放入一個arraylist中,然后從服務器中提取類別名稱,並將其放入另一個arraylist中。 然后將兩個數組列表放在一個Object []中,並將它們傳遞給需要它們的活動

好吧,您可以從類別類作為主類別和子類別的基類開始

public abstract class Category
{

    String name;
    String id;
    // More common fields;
}

public class MainCategory extends Category
{
//Main Category Specific  extra variables and method implementations.

}

public class SubCategory extends Category
{
//sub Category Specific  extra variables and method implementations.

}

然后,只需使用ArrayList,因為它既可以使用MainCategory也可以使用SubCategory。

此外,您可以簡單地重寫toString方法並在列表中使用直接對象,以便當用戶選中復選框時,將具有完整的對象供使用。

如果由於遺留原因或其他原因而被限制在ArrayList數據結構中,則可以通過執行以下操作獲取相應的ID

String chosenName; // user selects this
Integer id = categoryIDsArray.get(categoryNamesArray.indexOf(chosenName));

但是,如果您將代碼更改為具有

  1. “類別”對象(由Eluvatar建議),或
  2. BiMap<Integer, String>是雙向映射,使您能夠從名稱中獲取ID,反之亦然。

暫無
暫無

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

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