我在 s 的二维数组中有数据Object
。我正在寻找一种结合重复数据的算法,但我的算法丢失了重复数据。此外,它将所有行保留在顶部,因此,我的数据是:
ECE 201 电气和计算机工程 I 2.6666666666666665
生物 101 生物学 I 2.0
CS 101 计算机科学 I 3.5
AE 101 航空航天工程 I 2.5
BE 101 生物医学工程 I 2.0
CS 101 计算机科学 I 2.0
CS 102 计算机科学 II 3.0
BE 100 介绍生物医学工程 3.6
ECE 200 介绍电气和计算机工程 3.5
BIO 100 介绍生物学 2.2
CS 101 计算机科学 I 3.75
AE 101 航空航天工程 I 1.6666666666666667
BE 100 介绍生物医学工程 1.2
但它充满了null
s。我使用以下算法:
for (int i = 0; i< finalData.length; i++)
{
if (finalData[i][1] != null)
{
String first = (String)finalData[i][1];
for (int j = i; j< finalData.length; j++)
{
if (finalData[j][1]!= null)
{
String second = (String)finalData[j][1];
if (first.equals(second))
{
double one = (double)finalData[i][6];
double two = (double)finalData[i][6];
finalData[i][7] = (one + two)/2;
System.out.println("found!\t" + first + "\t" + second + "\t" + finalData[i][7]);
}
}
}
}
}
我的数据变成:
成立!欧洲经委会 201 欧洲经委会 201 2.6666666666666665
成立!生物 101 生物 101 2.0
成立!CS 101 CS 101 3.5
成立!CS 101 CS 101 3.5
成立!CS 101 CS 101 3.5
成立!自动曝光 101 自动曝光 101 2.5
成立!自动曝光 101 自动曝光 101 2.5
成立!BE 101 BE 101 2.0
成立!CS 101 CS 101 2.0
成立!CS 101 CS 101 2.0
成立!CS 102 CS 102 3.0
成立!BE 100 BE 100 3.6
成立!BE 100 BE 100 3.6
成立!欧洲经委会 200 欧洲经委会 200 3.5
成立!生物 100 生物 100 2.2
成立!CS 101 CS 101 3.75
成立!AE 101 AE 101 1.6666666666666667
成立!BE 100 BE 100 1.2
//找到了!只是为了确保它是正确的输出。
如何改进此算法以产生所需的结果?