获取Java列表中的对象索引

获取Java列表中的对象索引,第1张

概述我的(Android)Java程序中有一个字符串列表,我需要获取列表中对象索引.问题是,我只能找到有关如何查找对象的第一个和最后一个索引的文档.如果我的列表中有3个或更多相同的对象怎么办?我怎样才能找到每个索引?谢谢!解决方法:你需要进行暴力搜索:static<T>List<Integer>indexes

我的(Android)Java程序中有一个字符串列表,我需要获取列表中对象的索引.问题是,我只能找到有关如何查找对象的第一个和最后一个索引的文档.如果我的列表中有3个或更多相同的对象怎么办?我怎样才能找到每个索引?

谢谢!

解决方法:

你需要进行暴力搜索:

  static <T> List<Integer> indexesOf(List<T> source, T target)  {     final List<Integer> indexes = new ArrayList<Integer>();     for (int i = 0; i < source.size(); i++) {       if (source.get(i).equals(target)) { indexes.add(i); }     }     return indexes;  } 

请注意,这不一定是最有效的方法.根据上下文和列表的类型/大小,您可能需要进行一些严格的优化.关键是,如果您需要每个索引(并且对列表内容的结构一无所知),那么您需要在每个项目中进行死亡,以获得最佳O(n)成本.

根据底层列表的类型,get(i)可能是O(1)(ArrayList)或O(n)(linkedList),因此这可能会导致O(n2)实现.您可以复制到ArrayList,也可以手动使用linkedList递增索引计数器.

总结

以上是内存溢出为你收集整理的获取Java列表中的对象索引全部内容,希望文章能够帮你解决获取Java列表中的对象索引所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存