阵列彼此对应

时间:2014-06-25 10:57:04

标签: 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)在一个地方。

我已经在网上搜索过,我得到的答案就像创建一个新课程并为该课程设置数组或类似的东西但我真的不明白.....我会非常感谢一个答案细节很少,因为我是编程新手。

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

2 个答案:

答案 0 :(得分:1)

你可以创建一个名为“哺乳动物”的专用类,它具有脂肪含量,哺乳动物名称和蛋白质含量的特性。制作一组哺乳动物并循环查找最大脂肪含量,您可以轻松找到相应的蛋白质含量或任何其他查询。

P.S。:您应该遵循面向对象的范例。这很有用。

答案 1 :(得分:1)

这是课程,你需要自己改进。但正如我所理解的那样,主要的想法就在其中。

class Mamal
{
    String Name;
    double fat;
    double protein;
    public Mamal(double fatContent,double proteinContent,String nameofElements)
    {
        Name=nameofElements;
        protein=proteinContent;
        fat=fatContent;
    }
    public String get_by_name(Mamal[] nameofElements,String name)
    {
        for(int i=0;i<nameofElements.length;i++)
        {
            if(nameofElements[i].getName().equalsIgnoreCase(name))
            {
                return nameofElements[i].getFat()+nameofElements[i].getName();
            }
        }
        return "";
    }
    public String getName() {
        return Name;
    }
    public double getFat() {
        return fat;
    }
    public double getProtein() {
        return protein;
    }
}

功能get_by_name帮助您获得所需哺乳动物的蛋白质和脂肪。