Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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 如何使用xml数据从ArrayList获取元素?_Java - Fatal编程技术网

Java 如何使用xml数据从ArrayList获取元素?

Java 如何使用xml数据从ArrayList获取元素?,java,Java,我想从新产品类中的ArrayList示例中获取searchedProduct名称,如何实现?一切正常,但只是我忘记了如何在另一个类中获取searchedProduct:( 公共类XMLoader{ 私有最终字符串XML\u PATH=“src\\main\\java\\products.XML”; 私有列表数据=新的ArrayList(); public XMLoader()抛出ParserConfiguration异常、IOException、SAXException{ File inputF

我想从新产品类中的ArrayList示例中获取searchedProduct名称,如何实现?一切正常,但只是我忘记了如何在另一个类中获取searchedProduct:(

公共类XMLoader{
私有最终字符串XML\u PATH=“src\\main\\java\\products.XML”;
私有列表数据=新的ArrayList();
public XMLoader()抛出ParserConfiguration异常、IOException、SAXException{
File inputFile=新文件(XML\u路径);
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder DocumentBuilder=builderFactory.newDocumentBuilder();
Document Document=documentBuilder.parse(inputFile);
NodeList NodeList=document.getDocumentElement().getChildNodes();
for(int i=0;i
有两种方法可以让我立即看到(我让您自行将其重新写入现代Java):

或者,您重写SearchData中的equals方法来比较searchedProduct(仅限)

此时,您可以立即从列表中找到元素:

public String getIdFromSearchData(String searchedProduct) {
    SearchData d = new SeardData(null, searchedProduct);
    if ( data.contains(d) ) {
        d = data.get(data.indexOf(d));
        return d.getId();
    }
    return null;
}
关于第二种选择的几点意见: 1.我强烈建议您不要这样做。有一天您可能还需要在id上进行比较,到那时,您的代码将无法正常工作
2.如果您决定以第二种方式执行类似的操作,请不要忘记实现hashCode()方法。

您的确切意思是什么?例如,我想在另一个类中访问Id。如何使用SearchData类中的getter确定,但基于什么?基于我从xml文件中读取的数据。是的,但您有一个包含SearchData的列表。SearchData有一个Id和一个SearchedProduct。您的意思是您有一个SearchedProduct,并且基于你要身份证吗?
public String getIdFromSearchData(String searchedProduct) {
  // iterate over your list
  for ( SearchData element : data ) {
    // compare searchedProduct to the paramater
    if ( searchedProduct.equals(element.getSearchedProduct()) {
      return element.getId();
    }
  }
  // in case nothing found
  return null;
}
public boolean equals(Object o) {
  // let's assume all checks have been done
  SearchData data = (SearchData)o;
  return data.getSearchedProduct().equals(searchedProduct);
}
public String getIdFromSearchData(String searchedProduct) {
    SearchData d = new SeardData(null, searchedProduct);
    if ( data.contains(d) ) {
        d = data.get(data.indexOf(d));
        return d.getId();
    }
    return null;
}