当前位置:编程学习 > JAVA >>

数组中相同元素相加后输出

{1,2,2,2,3,3,4,4,5}处理后变成{1,6,6,8,5}

期待高手点拨 非常感谢 --------------------编程问答-------------------- --------------------编程问答-------------------- 简单说下思路也可以 有人吗、? --------------------编程问答--------------------

int a[]={1,2,2,2,3,3,4,4,5};
int b[]=new int[a.length];
int temp = 0;
int j=-1;
for(int i:a){
 if(i==temp){
 b[j] = b[j]+temp;
 }else{
 temp = i;
 j++;
 b[j] = temp;
 }
}

--------------------编程问答--------------------
引用 3 楼  的回复:
Java code


        int a[]={1,2,2,2,3,3,4,4,5};
        int b[]=new int[a.length];
        int temp = 0;
        int j=-1;
        for(int i:a){
         if(i==temp){
             b[j] = b[j……

可是当我的数组是{6,2,6,2,3,3,4,6,5}呢? --------------------编程问答-------------------- 加一句Arrays.sort(a);排序就行了 --------------------编程问答--------------------
引用 4 楼  的回复:
引用 3 楼  的回复:
Java code


int a[]={1,2,2,2,3,3,4,4,5};
int b[]=new int[a.length];
int temp = 0;
int j=-1;
for(int i:a){
if(i==temp){
b[j] = b[j……

可是当我的数组是{6,2,6,2,3,3,4,6,5}呢?


那就用map

key存数字,value存相同数字的和。然后排序输出。

但,问问楼主,{6,2,6,2,3,3,4,6,5},你认为应该输出什么? --------------------编程问答-------------------- 六楼说的那样,你要输出的是什么样的数组呢? --------------------编程问答--------------------
引用 6 楼  的回复:
引用 4 楼 的回复:

引用 3 楼 的回复:
Java code


int a[]={1,2,2,2,3,3,4,4,5};
int b[]=new int[a.length];
int temp = 0;
int j=-1;
for(int i:a){
if(i==temp){
b[j] = b[j……

可是当我的数组是{6,2,6,2,3,3,4,6,5}呢……
应该输出{18,4,6,4,5} --------------------编程问答--------------------
引用 8 楼  的回复:
应该输出{18,4,6,4,5}


那只有用二维数组了。不过原理和map一样,第一列存数字,第二列存相同数字的和。
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,