如何把Java数组中的重复元素右移到最后并输出重复元素的第一个索引位置
例如数组stringa[]={2,6,5,3,9,2,6};,把重复元素放在数组的最右面,并输出重复元素的第一个索引位置;...
例如数组string a[] ={2,6,5,3,9,2,6};,把重复元素放在数组的最右面,并输出重复元素的
第一个索引位置; 展开
第一个索引位置; 展开
1个回答
展开全部
public class Test{
public static void main(String[] args){
int[] in={2,6,5,3,9,2,6};
int count=0;
out:for(int i=0;i<in.length-count;i++){
if(i==0){
for(int k=0;k<in.length-1;k++){
if(in[k]==in[in.length-1]){
count++;
break;
}
}
}
for(int n=in.length-1;n>in.length-1-count;n--){
if(in[n]==in[i]){
continue out;
}
}
for(int j=0;j<i;j++){
if(in[i]==in[j]){
in[j]=in[j]^in[in.length-1-count];
in[in.length-1-count]=in[j]^in[in.length-1-count];
in[j]=in[j]^in[in.length-1-count];
count++;
}
}
}
System.out.println("重复元素的第一个索引位置是:"+(in.length-count));
}
}
以上是代码.最后的索引输出是按照数组下标来规定的.7个元素的数组下标为0,1,2,3,4,5,6.如果你想要按照1,2,3,4,5,6,7的话,在最后输出的地方加1就好了.
public static void main(String[] args){
int[] in={2,6,5,3,9,2,6};
int count=0;
out:for(int i=0;i<in.length-count;i++){
if(i==0){
for(int k=0;k<in.length-1;k++){
if(in[k]==in[in.length-1]){
count++;
break;
}
}
}
for(int n=in.length-1;n>in.length-1-count;n--){
if(in[n]==in[i]){
continue out;
}
}
for(int j=0;j<i;j++){
if(in[i]==in[j]){
in[j]=in[j]^in[in.length-1-count];
in[in.length-1-count]=in[j]^in[in.length-1-count];
in[j]=in[j]^in[in.length-1-count];
count++;
}
}
}
System.out.println("重复元素的第一个索引位置是:"+(in.length-count));
}
}
以上是代码.最后的索引输出是按照数组下标来规定的.7个元素的数组下标为0,1,2,3,4,5,6.如果你想要按照1,2,3,4,5,6,7的话,在最后输出的地方加1就好了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询