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

问题描述:

Java怎样快速分出一个数组中相同元素的下标,
例如如下数组 int [] temp = {1,2,5,8,6,2,11,15,2,6,2,11,15,5,1,8,6};
得到如下结果:
1 --> [0,14]
2 --> [1,5,8,10]
5 --> [2,13]
6 --> [4,9,11]
.
对于这问题的解决方式,我个人有一想法,不知如何实现较好:
第一步将数组转换成如下状态的二维数组:
int [][] temp = {
{01,02,05,08,06,02,11,15,02,06,02,11,15,05,01,08,06},
{00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16}
}
第二步先对第一组数排序,然后第二组的数跟着第一组的数走,得到如下结果:
int[][] temp = {
{01,01,02,02,02,02,05,05,06,06,.},
{00,14,01,05,08,10,02,13,04,09,.}
}
第三步便可通过第一组数中相同数的下标到第二组数中相应的值
但现在问题的难点在第二该如何实现?
1个回答 分类:综合 2014-11-16

问题解答:

我来补答
public class Test
{
public static void main(String args[])
{
int[] temp = {1,2,5,8,6,2,11,15,2,6,2,11,15,5,1,8,6};
for (int i = 0; i < temp.length - 1; i++)
{
if(temp[i] != 0)
{
System.out.print(temp[i] + " -->[" + i);
for (int j = i + 1; j < temp.length; j++)
{
if(temp[i] == temp[j])
{
System.out.print("," + j);
temp[j] = 0;
}
}
System.out.println("]");
}
}
}
}
 
 
展开全文阅读
剩余:2000