Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的树映射实现只返回最后一个元素_Java_Treemap - Fatal编程技术网

java中的树映射实现只返回最后一个元素

java中的树映射实现只返回最后一个元素,java,treemap,Java,Treemap,这是一个类,我想把它的对象放在树映射中 public class JobDefinition { private static String jobDescription; private static String datasetName; private static String jobName; private static String responsiblePerson; public JobDefinition(String jobDesc

这是一个类,我想把它的对象放在树映射中

public class JobDefinition  {
    private static String jobDescription;
    private static String datasetName;
    private static String jobName;
    private static String responsiblePerson;
    public JobDefinition(String jobDesc, String dataSet, String jobName2, String person) {
        jobDescription=jobDesc;
        datasetName=dataSet;
        jobName=jobName2;
        responsiblePerson=person;
    }
    public  String getJobDescription() {
        return jobDescription;
    }

    public  String getDatasetName() {
        return datasetName;
    }

    public  String getJobName() {
        return jobName;
    }

    public  String getResponsiblePerson() {
        return responsiblePerson;
    }

}
在这里,我使用POI库从电子表格中获取值。TreeMap使用一个整数作为键,上面类的对象作为其值

for (int rowCount = rowStartIndex+1; rowCount < rowEndIndex; rowCount++) 
    {
        String jobDesc=spreadsheet.getRow(rowCount).getCell(0).toString();
        String dataSet=spreadsheet.getRow(rowCount).getCell(1).toString();
        String jobName=spreadsheet.getRow(rowCount).getCell(2).toString();
        String person =spreadsheet.getRow(rowCount).getCell(3).toString();
        if(!jobName.equals("N/A") && jobName!=""){
            validJobCount++;
            jobDefinitionInfo.put(validJobCount, new JobDefinition(jobDesc,dataSet,jobName,person));
            }
    }
    for(Map.Entry<Integer,JobDefinition> entry : jobDefinitionInfo.entrySet()) {
          System.out.println(entry.getKey()+"::"+entry.getValue().getJobDescription());
        }
预期产出

1::VRSFEND - TRANSACTION SWEEP
2::XCTLOAD 
3::CHEKDATE  - TO IDENTIFY BACKDATED TRANSACTIONS
4::EDITALIVE  
5::EDITB 
6::PRICE LOAD
7::ACCTSIM - run manually 
8::ACCTLIV - run manually by DVG                        
9::Check Sybase jobs
10::Monthly UPDTMEND File

我觉得执行有问题。请告诉我还需要添加哪些内容才能使其正确运行。

您在参数中使用的是
static
。这意味着每次运行时,它们都会被覆盖,这很好地解释了为什么总是得到最后一个元素

您需要更改为:

private String jobDescription;
private String datasetName;
private String jobName;
private String responsiblePerson;

从字段声明中删除
static
。“TreeMap使用一个整数作为键,上面类的对象作为其值”--提问的基本规则:不要告诉我们你做了什么,让我们看看code@JimGarrison:如果看到内部循环->如果条件,则为代码。validJobcount是一个整数。代码片段很大,所以我想明确地提到它。正如安德烈亚斯所提到的,这是由于静电场。谢谢您的回复。:)@安德烈亚斯:谢谢。现在很好用。这是我的错。我不太懂Java。
private String jobDescription;
private String datasetName;
private String jobName;
private String responsiblePerson;