假设有一个二维数组,就2个column A和BA B
-------
a 0
a 1
b 2
c 4
a 3
b 1
c 1
---------------现在需要得到的结果是
A B
-------
a 4
b 3
c 5
---------------
即需要把所有的值根据A列相加,求算法
-------
a 0
a 1
b 2
c 4
a 3
b 1
c 1
---------------现在需要得到的结果是
A B
-------
a 4
b 3
c 5
---------------
即需要把所有的值根据A列相加,求算法
String[][] src = {
{"a","0"},
{"a","1"},
{"b","2"},
{"c","4"},
{"a","3"},
{"b","1"},
{"c","1"}
}; Map map = new HashMap();
String tmp;
for (int i=0; i<src.length; i++) {
tmp = map.get(src[0]);
if (tmp == null) {
map.put(src[0], src[1]);
continue;
}
tmp = String.valueOf(Integer.parseInt(tmp).intValue() + Integer.parseInt(src[1]).intValue());
map.put(src[0], tmp);
}String[][] result = new String[map.size()][2];
Iterator it = map.entrySet().iterator();
int index = 0;
while (it.hasNext()) {
Map.Entry entry = (Map.Entry)it.next();
result[index][0] = entry.getKey();
result[index++][1] = entry.getValue();
System.out.println(entry.getKey() + "\t" + entry.getValue());
}
把那个src[X]替换成src[i][X]就OK了~
result[index][0] = entry.getKey();
也一样....
难道是jre版本的问题? 我是1.5的.........
不过原理我懂了.....
Map<String,String> map = new HashMap<String,String>();就可以了
import java.util.Map;public class Test {
public static void main(String[] args) {
String[][] src = {
{"a","0"},
{"a","1"},
{"b","2"},
{"c","4"},
{"a","3"},
{"b","1"},
{"c","1"}
}; // 用 LinkedHashMap 可以保证迭代的先后顺序
Map<String, Integer> map = new LinkedHashMap<String, Integer>();
for (int i = 0; i < src.length; i++) {
String key = src[i][0];
Integer tmp = map.get(key);
if(tmp == null) {
tmp = 0;
}
map.put(key, tmp + Integer.parseInt(src[i][1]));
}
// 输出
for(Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " --> " + entry.getValue());
}
}
}
import java.lang.Integer.*;
import java.lang.String.*;public class array
{
String[][] b=new String[2][5];
String[][] a={{"a","b","a","b","c","a"},{"1","4","9","0","3","4"}};
public array()
{
} public static void main(String[] args)
{
array aa=new array();
for(int i=0;i<=5;i++)
{
for(int j=0;j<=4;j++)
{
if(aa.b[0][j] == null)
{
aa.b[0][j]=aa.a[0][i];
aa.b[1][j]=aa.a[1][i];
break;
}
else if(aa.b[0][j] == aa.a[0][i])
{
int c = Integer.parseInt(aa.a[1][i]) + Integer.parseInt(aa.b[1][j]);
aa.b[1][j] = String.valueOf(c);
break;
}
}
}
for(int i=0;i<=1;i++)
{
for(int j=0;j<=4;j++)
{
System.out.println(aa.b[i][j]);
}
}
}
}