java - 数组相互对应

标签 java arrays

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

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

我在网上搜索过,得到了一些答案,比如创建一个新类并将数组设置为该类或类似的东西,但我真的不明白......我非常感谢一个包含一些细节的答案因为我是编程新手。

提前致谢,任何想法或帮助将不胜感激......

最佳答案

这里是类(class),需要你自己完善。但据我了解,主要思想就在其中。

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 可帮助您获取所需哺乳动物的蛋白质和脂肪。

关于java - 数组相互对应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24406774/

相关文章:

java - 如何让Eclipse 4.7在Linux(Ubuntu)上的server-jre-1.8...上流畅运行?

java - 模拟用户点击网页[JAVA]

java - Android Studio - 在现有的旧项目中启用 native C++ 调试 (card.io Android Source)

java - 使用servlet将图像路径插入数据库

javascript - 为什么刷新页面时我的数组会丢失其内容?

java - 获取数字数组所有可能排列的 ArrayList

c - 在查找两个输入数组的并集和交集的 C 程序中,我在交集部分遇到问题

java - 如何使用http响应参数测试mvc Controller 方法?

arrays - 使用数组 Swift SpriteKit 生成多个硬币节点

javascript - 如何迭代对象数组并将键值作为字符串的一部分返回