//现在已知第四列的值为double型的数字,第二列、第三列为string型的字符串。 如果某两行的第二列、第三列的字符串同时相等,则将//这两行或多行的第四列的数值相加的和赋值给这两行或多行的第一列。
import
java.util.ArrayList;
import
java.util.List;
public
class
Algorithm
{
public
static
void
main(String[] args) {
Object[][] obj =
new
Object[
10
][
4
];
obj[
0
] =
new
Object[] {
"a"
,
"ab"
,
"b"
,
10.1
};
obj[
1
] =
new
Object[] {
"a"
,
"ab"
,
"b"
,
20.3
};
obj[
2
] =
new
Object[] {
"a"
,
"a"
,
"b"
,
10.2
};
obj[
3
] =
new
Object[] {
"a"
,
"ab"
,
"b"
,
10.1
};
obj[
4
] =
new
Object[] {
"a"
,
"af"
,
"b"
,
20.2
};
obj[
5
] =
new
Object[] {
"a"
,
"ag"
,
"b"
,
10.2
};
obj[
6
] =
new
Object[] {
"a"
,
"a"
,
"b"
,
10.2
};
obj[
7
] =
new
Object[] {
"a"
,
"a"
,
"b"
,
10.2
};
obj[
8
] =
new
Object[] {
"a"
,
"a"
,
"b"
,
10.2
};
obj[
9
] =
new
Object[] {
"a"
,
"a"
,
"b"
,
10.2
};
List<String[]> strList =
new
ArrayList<String[]>();
List<Integer> intList =
new
ArrayList<Integer>();
int
count =
0
;
// 获取不重复的字符串组合
for
(
int
j =
0
; j <
10
; j++) {
count =
0
;
for
(
int
j2 =
0
; j2 < strList.size(); j2++) {
if
(!((String) obj[j][
1
]).equals(strList.get(j2)[
0
])
|| !((String) obj[j][
2
]).equals(strList.get(j2)[
1
])) {
count++;
}
}
if
(count > strList.size() -
1
|| strList.size() ==
0
) {
strList.add(
new
String[] { (String) obj[j][
1
], (String) obj[j][
2
] });
count =
0
;
}
}
double
sum;
System.out.println(
"strList大小---"
+ strList.size());
for
(String[] str : strList) {
for
(String string : str) {
System.out.print(string);
}
System.out.println();
}
for
(
int
j2 =
0
; j2 < strList.size(); j2++) {
for
(
int
i =
0
; i <
10
; i++) {
if
(((String) obj[i][
1
]).equals(strList.get(j2)[
0
])
&& ((String) obj[i][
2
]).equals(strList.get(j2)[
1
])) {
intList.add(i);
}
if
(i ==
9
) {
System.out.println(intList);
sum =
0
;
for
(
int
j =
0
; j < intList.size(); j++) {
sum += (
double
) obj[intList.get(j)][
3
];
}
for
(
int
j =
0
; j < intList.size(); j++) {
obj[intList.get(j)][
0
] = sum;
}
intList =
new
ArrayList<Integer>();
}
}
}
for
(Object obj1[] : obj) {
for
(Object object : obj1) {
System.out.print(object);
}
System.out.println();
}
}
}