Java怎样快速分出一个数组中相同元素的下标?

 我来答
work4brains
2018-03-03 · TA获得超过469个赞
知道答主
回答量:198
采纳率:0%
帮助的人:165万
展开全部
其实很简单,完全不用用集合,只要一找好就print或组String,多馀的内存也可以省下

public class Run {

private final static int [] temp = {1,2,5,8,6,2,11,15,2,6,2,11,15,5,1,8,6};

public static void main(String[] args) {
Run r = new Run();
r.locateAllAndPrint();
}

private void locateAllAndPrint () {
for (int i = 0; i < temp.length; i++) {
int h = temp[i];
boolean repeated = false;
for (int j = 0; j < i; j++) {
if (temp[j] == h) {
repeated = true;
break;
}
}
if (!repeated) {
StringBuffer sb = new StringBuffer();
for (int j = 0; j < temp.length; j++) {
if (h == temp[j]) {
sb.append(", ").append(j);
}
}
sb.delete(0, 2).insert(0, " --> [").insert(0, h).append(']');
System.out.println(sb.toString());
}
}
}
}

解释一下,型孙第一个 j 的 loop是用来防止print重覆的数字
第二卜拆链个 j 的御谈 loop是用来组一串string,串好了才print,这样可以减少print的次数,delay也可以减少,当然,如果你喜欢的话,你可以直接print,不需要用stringbuffer
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式