访问java中的列表元素

时间:2017-02-16 15:53:40

标签: java list linked-list

我创建了一个链接列表对象,如下所示

 importBuffer = new BufferedReader(new FileReader(importcsvFile));
              while ((line = importBuffer.readLine()) != null) {

                  // use comma as separator
                  String[] importedFile = line.split(cvsSplitBy); //cap,comune,provincia,stato

                  System.out.println("Codice Azienda " + importedFile[0] + " , Codice Cliente=" + importedFile[1] + " , Regione Sociale=" + importedFile[2] + " , Indrizzo=" + importedFile[3] + " , comune=" + importedFile[4] + " , provincia=" + importedFile[5] + " , stato=" + importedFile[6] +"]");
                  counter++;
                  PublicDefinition.importList.add(importBuffer.toString());

                  List customers = select.select(importedFile[0],importedFile[1], importedFile[3]);

                  if(!customers.isEmpty())
                  {

                 System.out.println("selected Customer  : " + customers.size());   
                 buffureList = customers;
                 Object a=List.class.cast(customers);

                 PublicDefinition.testingList.add(buffureList.toString());

                 System.out.println("selected Customer  : " + PublicDefinition.importList.get(0));
                 System.out.println("selected Customer  : " + PublicDefinition.testingList.getFirst());

                 updateCustomer =  customers;
                 if(customers.get(0)==importedFile[0])
                     System.out.println("Matched Codice Azienda");
                 select.updateTable(importedFile[1], importedFile[3], "10.34", "11.40"); //String CodiceCliente, String indrizzo, String latitude, String longitute         
                  }
              }

当我尝试使用

访问链表的元素时
System.out.println("selected Customer  : " + PublicDefinition.importList.get(0));

我得到了输出:

selected Customer  : java.io.BufferedReader@420dc55b

我认为这是内存引用,但我想检索链表的值

我的选择功能是:

public List<Customer> select(String codiceAzienda, String codiceCliente, String indrizzo) {
        return jdbcTemplate.query(
                "SELECT * FROM customers WHERE CodiceAzienda= ?",
                new Object[] { codiceAzienda},
                (rs, rowNum) -> new Customer(rs.getLong("id"),
                         rs.getString("CodiceAzienda"), rs.getString("Indrizzo"), rs.getString("codice_cliente"), rs.getString("Indrizzo")));
    }

3 个答案:

答案 0 :(得分:3)

您添加了importBuffer 对象toString()值,而不是实际内容。默认的toString()实现(每个对象都继承自... Object)返回ClassName@HashCode。所以你的输出没有错,但输入是。

请参阅Object.toString() in the javadoc

答案 1 :(得分:1)

继续执行:
     PublicDefinition.importList.add(importBuffer.readLine());
而不是:
     PublicDefinition.importList.add(importBuffer.toString());

因为您尝试输出缓冲读取器的内容而不是ClassName @Hashcode内容。

答案 2 :(得分:1)

替换

PublicDefinition.importList.add(importBuffer.toString());

PublicDefinition.importList.add(importedFile);

您不小心添加了BufferReader对象的字符串表示形式,而不是那些听起来像您的意图的导入文件列表。