java for 获取索引_获取Java列表中的对象索引

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

谢谢!

解决方法:

你需要进行暴力搜索:

static List indexesOf(List source, T target)

{

final List indexes = new ArrayList();

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递增索引计数器.

标签:android,java,list,indexing

来源: https://codeday.me/bug/20190723/1516812.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值