在Java中的ArrayList中查找元素
根据子元素查找ArrayList元素最有效的方法是什么 例如,我有一个名为test的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) 将首先返回字符串。我知道我可以在整个阵列中
{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转换成地图?