Java ArrayList搜索

Pre*_*ryx 0 java arraylist

我有一个ArrayList类型String.我想确定它的任何元素是否ArrayList以指定的字符串开头,如果ArrayList包含这个元素,那么我想得到这个元素的索引.另外,我不想循环它ArrayList来获取该元素的索引.

例如 :

ArrayList<String> asd = new ArrayList<String>();  // We have an array list

//We filled the array list
asd.add("abcc trtiou");
asd.add("aiwr hiut qwe");
asd.add("vkl: gtr");
asd.add("aAgiur gfjhg ewru");
Run Code Online (Sandbox Code Playgroud)

现在,我想vkl: gtr通过使用vkl:没有循环数组列表来获取元素的索引.(搜索也应该不区分大小写,所以,使用vkl:和VkL:应该给索引vkl: gtr)

我怎样才能做到这一点 ?

提前致谢.

Aid*_*anc 11

你必须循环ArrayList.你不能只访问一个索引,并保证它是你正在寻找的.

此外,如果涉及大量搜索,您应该考虑使用其他数据结构.搜索ArrayList需要O(n)时间,而像红黑树这样的东西可以完成O(log n).

如果您在程序执行之前知道用于定位结构中项目的字符串,请考虑使用HashMap.您可以访问中的项目O(1).

如果这些解决方案都不适合您的特定问题,请根据您的尝试扩展您的答案,我们可以提供更好的答案,了解您如何以最少的搜索时间找到您的商品.