如何在Java数组中使用键字段?

如何在Java数组中使用键字段?,java,arrays,key,field,Java,Arrays,Key,Field,我试图用Java在数组中使用一个键字段,但我不知道从哪里开始。我的程序应该是,用户输入一个名称,这将是唯一的标识符,所有这些信息将显示与名称有关的一种迷你谷歌。我有两个类,一个是抽象类,另一个是主方法类。如果有人能帮我的话,那就太好了 这是我的班级 import java.util.HashMap; public class DataBase { private String name; private int year; private String status; private

我试图用Java在数组中使用一个键字段,但我不知道从哪里开始。我的程序应该是,用户输入一个名称,这将是唯一的标识符,所有这些信息将显示与名称有关的一种迷你谷歌。我有两个类,一个是抽象类,另一个是主方法类。如果有人能帮我的话,那就太好了

这是我的班级

import java.util.HashMap;
public class DataBase {

private  String name;
private  int year;
private  String status;
private  String habitat;
private  String lifespan;

public DataBase() {
}

HashMap list=new HashMap();
public DataBase(String name, int year, String status, String habitat, String lifespan) {
    this.name = name;
    this.year = year;
    this.status = status;
    this.habitat = habitat;
    this.lifespan = lifespan;
}


public  String getName() {
    return name;
}

public  void setName(String name) {
    this.name = name;
}

public  int getYear() {
    return year;
}

public  void setYear(int year) {
    this.year = year;
}

public  String getStatus() {
    return status;
}

public  void setStatus(String status) {
    this.status = status;
}


 public  String getHabitat() {
    return habitat;
}

public  void setHabitat(String habitat) {
    this.habitat = habitat;
   }


 public  String getLifeSpan() {
    return lifespan;
}

public  void setLifeSpan(String lifespan) {
   this.lifespan = lifespan;
}


    public String toString()
{
    String result = "";
    result += "\nName: "+ getName() + "\nYear: "+getYear()+ "\nStatus: "+getStatus()+ "\nHabitat: "+getHabitat()+"\nLifeSpan: "+getLifeSpan();
    return result;
}

}
这是我的主要方法类

import java.util.HashMap;
import java.util.Scanner;
public class DB
{
public static void main(String[] args) 
 {  
    Scanner in = new Scanner (System.in);

    String fName;
    System.out.print("Enter Name:");
    fName=in.next();

    String name;
    name=fName+" ";

    System.out.println(name);


    DataBase turtle1 = new DataBase("Diamondback terrapin", 1793, "Near Threatened","East Coast of US","8 years");
    DataBase turtle2 = new DataBase("Galápagos tortoise", 1535, "Vulnerable"," Galápagos Islands","At least 100 years");
    DataBase turtle3 = new DataBase("West African mud turtle", 1812, "Least Concern","West and Central Africa","25 years");
    DataBase turtle4 = new DataBase("Black softshell turtle", 1875, "Extinct in the Wild","South Asia","Unknown");    
    DataBase turtle5 = new DataBase("Radiated tortoise", 1802, "Critically Endangered","Southern Madagascar","At least 150 years");
    DataBase turtle6 = new DataBase("Painted terrapin", 1844, "Critically Endangered","East Asia","Unknown");
    DataBase turtle7 = new DataBase("Philippine pond turtle", 1920, "Critically Endangered ","Philippines","Unknown");
    DataBase turtle8 = new DataBase("Flattened musk turtle", 1955, "Critically Endangered","Southern US","20-50 years");
    DataBase turtle9 = new DataBase("McCord's box turtle", 1988, "Critically Endangered","China","Around 50 years");
    DataBase turtle10 = new DataBase("Leatherback sea turtle", 1761, "Vulnerable","Atlantic and Pacfic Oceans","Around 30 years");

    System.out.println(turtle1);

    HashMap<String,DataBase> turtles = new HashMap<>();
    turtles.put("Diamondback terrapin", new DataBase("Diamondback terrapin", 1793, "Near Threatened","East Coast of US","8 years"));
    turtles.put("Galapagos tortoise", new DataBase("Galapagos tortoise", 1535, "Vulnerable"," Galapagos Islands","At least 100 years"));
    turtles.put("West African mud turtle", new DataBase("West African mud turtle", 1812, "Least Concern","West and Central Africa","25 years"));
    turtles.put("Black softshell turtle", new DataBase("Black softshell turtle", 1875, "Extinct in the Wild","South Asia","Unknown"));
    turtles.put("Radiated tortoise", new DataBase("Radiated tortoise", 1802, "Critically Endangered","Southern Madagascar","At least 150 years"));
    turtles.put("Painted terrapin", new DataBase("Painted terrapin", 1844, "Critically Endangered","East Asia","Unknown"));
    turtles.put("Philippine pond turtle", new DataBase("Philippine pond turtle", 1920, "Critically Endangered ","Philippines","Unknown"));
    turtles.put("Flattened musk turtle", new DataBase("Flattened musk turtle", 1955, "Critically Endangered","Southern US","20-50 years"));
    turtles.put("McCord's box turtle", new DataBase("McCord's box turtle", 1988, "Critically Endangered","China","Around 50 years"));
    turtles.put("Leatherback sea turtle", new DataBase("Leatherback sea turtle", 1761, "Vulnerable","Atlantic and Pacfic Oceans","Around 30 years"));




    DataBase database = turtles.get("Diamondback terrapin");
    DataBase databas = turtles.get("Galapagos tortoise");
    DataBase databse = turtles.get("West African mud turtle");
    DataBase databa = turtles.get("Black softshell turtle");
    DataBase dataase = turtles.get("Radiated tortoise");
    DataBase datab = turtles.get("Painted terrapin");
    DataBase datase = turtles.get("Philippine pond turtle");
    DataBase datae = turtles.get("Flattened musk turtle");
    DataBase dataae = turtles.get("McCord's box turtle");
    DataBase datbase = turtles.get("Leatherback sea turtle");
    System.out.println(turtles.get(name));



}

}
import java.util.HashMap;
导入java.util.Scanner;
公共类数据库
{
公共静态void main(字符串[]args)
{  
扫描仪输入=新扫描仪(系统输入);
字符串fName;
系统输出打印(“输入名称:”);
fName=in.next();
字符串名;
name=fName+“”;
System.out.println(名称);
数据库turtle1=新数据库(“响尾蛇水龟”,1793年,“近威胁”,“美国东海岸”,“8年”);
数据库turtle2=新数据库(“加拉帕戈斯乌龟”,1535年,“脆弱”,“加拉帕戈斯群岛”,“至少100年”);
数据库turtle3=新数据库(“西非泥龟”,1812年,“最少关注”,“西非和中非”,“25年”);
数据库turtle4=新数据库(“黑色软壳龟”,1875年,“野外灭绝”,“南亚”,“未知”);
数据库turtle5=新数据库(“辐射乌龟”,1802年,“极度濒危”,“马达加斯加南部”,“至少150年”);
数据库turtle6=新数据库(“彩绘水龟”,1844年,“极度濒危”,“东亚”,“未知”);
数据库turtle7=新数据库(“菲律宾池龟”,1920年,“极度濒危”,“菲律宾”,“未知”);
数据库turtle8=新数据库(“扁平麝香龟”,1955年,“极度濒危”,“美国南部”,“20-50年”);
数据库turtle9=新数据库(“麦考德箱龟”,1988年,“极度濒危”,“中国”,“大约50年”);
数据库turtle10=新数据库(“棱皮海龟”,1761年,“脆弱”,“大西洋和太平洋”,“大约30年”);
系统输出打印LN(turtle1);
HashMap turtles=新HashMap();
海龟。put(“响尾蛇水龟”,新数据库(“响尾蛇水龟”,1793年,“近威胁”,“美国东海岸”,“8年”);
海龟。put(“加拉帕戈斯乌龟”,新数据库(“加拉帕戈斯乌龟”,1535年,“脆弱”,“加拉帕戈斯群岛”,“至少100年”);
海龟。put(“西非泥龟”,新数据库(“西非泥龟”,1812年,“最不受关注”,“西非和中非”,“25年”);
乌龟。put(“黑软壳龟”,新数据库(“黑软壳龟”,1875年,“野外灭绝”,“南亚”,“未知”);
海龟。put(“辐射龟”,新数据库(“辐射龟”,1802年,“极度濒危”,“马达加斯加南部”,“至少150年”);
乌龟。put(“彩绘水龟”,新数据库(“彩绘水龟”,1844年,“极度濒危”,“东亚”,“未知”);
海龟。put(“菲律宾池龟”,新数据库(“菲律宾池龟”,1920年,“极度濒危”,“菲律宾”,“未知”);
海龟。put(“扁平麝香龟”,新数据库(“扁平麝香龟”,1955年,“极度濒危”,“美国南部”,“20-50年”);
海龟。put(“麦考德箱龟”,新数据库(“麦考德箱龟”,1988年,“极度濒危”,“中国”,“大约50年”);
海龟。put(“棱皮海龟”,新数据库(“棱皮海龟”,1761年,“脆弱”,“大西洋和太平洋”,“大约30年”);
数据库=turtles.get(“响尾蛇龟”);
数据库DataBase=turtles.get(“加拉帕戈斯乌龟”);
数据库DataBase=turtles.get(“西非泥龟”);
数据库databa=turtles.get(“黑色软壳龟”);
数据库dataase=turtles.get(“辐射乌龟”);
数据库datab=turtles.get(“绘制的水龟”);
数据库datase=turtles.get(“菲律宾池塘龟”);
数据库datae=turtles.get(“扁平麝香龟”);
数据库dataae=turtles.get(“麦考德箱龟”);
数据库datbase=turtles.get(“棱皮海龟”);
System.out.println(turtles.get(name));
}
}
更新:


我可以打印出姓名和信息,但我不知道如何将两者连接起来。

键用于地图

尝试用
java.util.HashMap
替换
ArrayList

HashMap<String,DataBase> turtles = new HashMap<>();
turtles.put("Diamondback terrapin", new DataBase("Diamondback terrapin", 1793, "Near Threatened","East Coast of US","8 years"));
...
DataBase database = turtles.get("Diamondback terrapin");
HashMap-turtles=newhashmap();
海龟。put(“响尾蛇水龟”,新数据库(“响尾蛇水龟”,1793年,“近威胁”,“美国东海岸”,“8年”);
...
数据库=turtles.get(“响尾蛇龟”);

我认为您试图做的是以下几点:

import java.util.HashMap;

public class DataEntry {

    private  String name;
    private  int year;

    public DataEntry(String name, int year) {
        this.name = name;
        this.year = year;
    }

    public  String getName() {  return name; }

    public  void setName(String name) { this.name = name;   }

    public  int getYear() { return year;}

    public  void setYear(int year) {    this.year = year;}

    @Override
    public String toString()
    {
        return "\nName: "+ getName() + "\nYear: "+getYear();
    }

    public static void main(String[] args)
     {
        //create 2 entries
        String name1 = "Diamondback terrapin", name2 = "Galápagos tortoise";
        DataEntry turtle1 = new DataEntry(name1, 1793);
        DataEntry turtle2 = new DataEntry(name2, 1535);

        //create collection and store entries
        DataCollection dc = new DataCollection();
        dc.addEntry(turtle1);
        dc.addEntry(turtle2);

        //retrieve an entry
        System.out.println(dc.getEntry(name1));
    }
}

class DataCollection{

    HashMap<String, DataEntry> list;

    DataCollection(){ list = new HashMap<>();   }

    void addEntry(DataEntry entry) {
        //todo verify input
        list.put(entry.getName(), entry);
    }

    DataEntry getEntry(String name) {
       //todo verify input          
       return list.get(name);
    }
    //todo add more methods as needed such as remove, get all entries
}
import java.util.HashMap;
公共类数据项{
私有字符串名称;
私人国际年;
公共数据项(字符串名称,整数年){
this.name=名称;
今年=年;
}
公共字符串getName(){return name;}
public void setName(字符串名){this.name=name;}
public int getYear(){return year;}
公共无效setYear(int year){this.year=year;}
@凌驾
公共字符串toString()
{
返回“\nName:+getName()+”\nYear:+getYear();
}
公共静态void main(字符串[]args)
{
//创建2个条目
字符串name1=“响尾蛇龟”,name2=“加拉帕戈斯乌龟”;
DataEntry turtle1=新的DataEntry(名称1793);
DataEntry turtle2=新的DataEntry(名称2,1535);
//创建集合和存储项
DataCollection dc=新的DataCollection();
dc.附录(turtle1);
dc.addEntry(turtle2);
//检索条目
System.out.println(dc.getEntry(name1));
}
}
类数据收集{
HashMap列表;
DataCollection(){list=new HashMap();}
无效补遗(数据输入){
//todo验证输入
list.put(entry.getName(),entry);
}
DataEntry getEntry(字符串