Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中的ArrayList中查找元素_Java_Arraylist - Fatal编程技术网

在Java中的ArrayList中查找元素

在Java中的ArrayList中查找元素,java,arraylist,Java,Arraylist,根据子元素查找ArrayList元素最有效的方法是什么 例如,我有一个名为test的ArrayList,它由以下数组组成: {a,first} {b, second} {c, third} {d, fourth} 我正在尝试创建一个方法,以便找到每个子元素的第二个元素字符串数组。我的方法是: public static String getElement(String key, ArrayList<String[]> haystack) 将首先返回字符串。我知道我可以在整个阵列中

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

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

{a,first}
{b, second}
{c, third}
{d, fourth}
我正在尝试创建一个方法,以便找到每个子元素的第二个元素字符串数组。我的方法是:

public static String getElement(String key, ArrayList<String[]> haystack)
将首先返回字符串。我知道我可以在整个阵列中循环并找到它,但我想知道是否有更有效的方法。
谢谢

我想您可能正在寻找Map实现

如果不是,您可以选择强制执行,这意味着您必须扫描元素列表,然后查看数组中的第一个元素,如果它相等,则返回第二个元素

for ( String[] a : haystack ) {

       if ( key.equals(a[0])
             return a[1];
}
编辑-

您可以获取arraylist并通过迭代将其转换为映射。只有当您获得一次ArrayList并且必须对其重复执行get操作时,这才有用

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

for ( String[] a : haystack ) 
    myMap.put(a[0] , a[1]);

我认为您实际上可能正在寻找Map实现

如果不是,您可以选择强制执行,这意味着您必须扫描元素列表,然后查看数组中的第一个元素,如果它相等,则返回第二个元素

for ( String[] a : haystack ) {

       if ( key.equals(a[0])
             return a[1];
}
编辑-

您可以获取arraylist并通过迭代将其转换为映射。只有当您获得一次ArrayList并且必须对其重复执行get操作时,这才有用

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

for ( String[] a : haystack ) 
    myMap.put(a[0] , a[1]);
请为此使用映射而不是ArrayList。或者是别人给你的名单

如果必须使用列表,且列表未排序,且只需执行一次操作,则可以遍历外部数组。

为此,请使用映射而不是ArrayList。或者是别人给你的名单

如果必须使用列表,且列表未排序,且只需执行一次操作,则可以遍历外部数组。

可以定义对:

然后像这样使用它:

public static String getElement(String key, ArrayList<Pair> list)
for(Pair p : list)
{
    if(p.getKey().equals(key)) return p.getString();
}
您可以定义对:

然后像这样使用它:

public static String getElement(String key, ArrayList<Pair> list)
for(Pair p : list)
{
    if(p.getKey().equals(key)) return p.getString();
}

为什么要使用arrayList,是否考虑过使用hashmap?是否多次调用该方法?或者这是一个一次性操作?为什么要使用arrayList,是否考虑过使用hashmap?是否多次调用该方法?或者这是一个一次性操作?我得到了一个ArrayList,有没有办法把这个ArrayList转换成地图?我得到了一个ArrayList,有没有办法把这个ArrayList转换成地图?