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