如何使三个数组相互关联

时间:2014-06-25 06:46:51

标签: java arrays

我编写了一个程序,它读取输入文件并将值存储在三个数组中(一个字符串和两个双数组)。 执行任务的班级如下:

package Assignments;

import java.util.Arrays;
import java.util.Scanner;


public class Unit {

static double[] fatContent;
static double[] protienContent;
static String[] nameOfElements;


Unit(int numberOfElements){
    fatContent=new double[numberOfElements];
    protienContent=new double[numberOfElements];
    nameOfElements=new String[numberOfElements];

}

static void start(String in,int counter){
     Scanner storingElements=new Scanner(in);
    double fat;
    double protien;
    String name;

    while(!storingElements.hasNext()){

        storingElements.nextLine();

    }
    name=storingElements.next();
    fat=storingElements.nextDouble();
    protien=storingElements.nextDouble();
    fatContent[counter]=fat;
    protienContent[counter]=protien;
    nameOfElements[counter]=name;

}


}

我正在阅读的输入文件之一是:

7
25
2
Mammal  fat_content(%)  protein_content(%)
Bison   7.9 5.9
Guinea_pig  3.9 8.1
Dolphin 14.0    10.4
Donkey  1.4 1.7
Goat    4.1 3.4
Deer    19.7    9.2
Dog         8.3 9.5
Yak     6.7 5.3
Camel   3.4 3.5
Cat     10.9    11.1
Rabbit  13.1    7.1
Llama   3.2 3.9
Human   43.9    7.4
Mule    1.8 2.0
Elephant    5.0 4.0
Horse   1.3 2.1
Rat     12.6    12.3
Reindeer    20.3    10.4
Sheep   6.4 5.6
Pig         5.1 6.6
Fox     5.9 7.4
Whale   42.3    10.9
Polar_bear  31.0    10.2
Zebra   4.8 3.0
Seal    53.2    11.2

当我从我的主程序运行这个类时,它给出了输出:

[Bison, Guinea_pig, Dolphin, Donkey, Goat, Deer, Dog, Yak, Camel, Cat, Rabbit, Llama, Human,     Mule, Elephant, Horse, Rat, Reindeer, Sheep, Pig, Fox, Whale, Polar_bear, Zebra, Seal]

[7.9, 3.9, 14.0, 1.4, 4.1, 19.7, 8.3, 6.7, 3.4, 10.9, 13.1, 3.2, 43.9, 1.8, 5.0, 1.3, 12.6,     20.3, 6.4, 5.1, 5.9, 42.3, 31.0, 4.8, 53.2]

[5.9, 8.1, 10.4, 1.7, 3.4, 9.2, 9.5, 5.3, 3.5, 11.1, 7.1, 3.9, 7.4, 2.0, 4.0, 2.1, 12.3, 10.4, 5.6, 6.6, 7.4, 10.9, 10.2, 3.0, 11.2]

但我的问题是我想在它们之间建立连接,就像我找到胖数组的最大值那么它也给了我相应的蛋白质和属于它的哺乳动物名称的值。 我的意思是我怎么能让它们彼此相关...... 喜欢(Bison 7.9 5.9)在一个地方。

提前致谢,任何想法或帮助都将受到高度赞赏.....

3 个答案:

答案 0 :(得分:6)

创建一个包含所有三个值的新类,而不是拥有三个数组,而是拥有该类的一个数组。

例如:

public class MammalValue {
    private String name;
    private double fat;
    private double protein;

    // getters & setters here
}

像这样你可以有一个数组:MammalValue[] values

答案 1 :(得分:0)

你想要的是一个新的数据类型,它包含两个双精度数和一个String。 从这里,你创建一个数组。

你可以开始搞乱索引,但这会使它变得比它应该更复杂,而且更容易出错。

答案 2 :(得分:0)

您可以使用POJO的Mammal,fat_content(%),protein_content(%)字段创建getter-setter类。

并创建array of these objects。所以你可以得到三个值。