在Java中查找ArrayList <String []>中的元素

Jul*_*iaz 1 java arraylist

根据"子元素"查找ArrayList元素的最有效方法是什么?

例如,我有一个名为test的ArrayList,它由以下数组组成:

{a,first}
{b, second}
{c, third}
{d, fourth}
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个方法,以便我可以找到每个子元素的第二个元素(字符串数组).我的方法是这样的:

public static String getElement(String key, ArrayList<String[]> haystack)
Run Code Online (Sandbox Code Playgroud)

所以调用方法

getElement("a", test)
Run Code Online (Sandbox Code Playgroud)

将返回String"first".我知道我可以遍历整个阵列并找到它,但我想知道是否会有更有效的方法.谢谢

Kal*_*Kal 5

我想你可能正在寻找Map实现.

如果没有,你的选择是强制它,这意味着你必须扫描元素列表,然后查看数组中的第一个元素,如果它相等,则返回第二个元素.

for ( String[] a : haystack ) {

       if ( key.equals(a[0])
             return a[1];
}
Run Code Online (Sandbox Code Playgroud)

编辑 -

您可以通过遍历它来获取arraylist并将其转换为地图.这只有在给你一次ArrayList并且你必须重复执行"get"操作时才有用.

Map<String, String> myMap = new HashMap<String, String>();

for ( String[] a : haystack ) 
    myMap.put(a[0] , a[1]);
Run Code Online (Sandbox Code Playgroud)

一旦你完成了,你就可以打电话

myMap.get(key);
Run Code Online (Sandbox Code Playgroud)