当前位置: 首页 > 面试题库 >

覆盖自身的字符串数组列表

弓磊
2023-03-14
问题内容

这里的第一个问题,是新手,所以尝试让我轻松一点。我正在尝试找出问题所在:

public List<String[]> idOnlyQuery(String searchTerm, Connection conn){

    List<String[]> result = new ArrayList<String[]>();
    String[] rowResult = new String[7];

    Statement stmt = null;      
    try {
      stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery( "SELECT * FROM Jets WHERE CurrentID LIKE '" + searchTerm + "%'");
      while(rs.next()){

          String currentId= rs.getString("CurrentId");
          String manufacturer = rs.getString("Constructor");
          String type = rs.getString("ACType");
          String series = rs.getString("Series");
          String index = rs.getString("KeyNo");
          String operator = rs.getString("Operator");
          String baseAirport = rs.getString("Home_Airfield");
          rowResult[0] = (currentId);
          rowResult[1] = (manufacturer);
          rowResult[2] = (type);
          rowResult[3] = (series);
          rowResult[4] = (operator);
          rowResult[5] = (baseAirport);
          rowResult[6]= (index);
          result.add(rowResult);
      }
    System.out.println(result.get(0)[0]);

此方法返回字符串数组的列表,这些数组是从SQLite数据库检索的。一切工作都与以下事实不同:List每次while循环重复自身时,结果中的字符串数组似乎都会被覆盖。最后一个println总是给我currentId从数据库中检索到的最后一行的信息,但是如果我printlnwhile循环中放入一个循环,它将在每个while周期返回适当的数据。我真的不知道我的String[]元素在哪里被覆盖。这可能确实很明显,但是我花了数小时在网上寻找信息,以检查我是否正确地执行了添加过程,但仍然没有任何乐趣。救命!


问题答案:

您需要rowResult在循环中创建数组。您的列表仅包含一个指向数组的指针,并且您基本上一直只在处理一个实例。



 类似资料:
  • 问题内容: 我有阵列中的国家/地区列表,我想从列表中选择一个国家/地区(可能是使用随机的?),但是我自己还没有找到答案… 这是我到目前为止所拥有的: 问题答案: 尝试:

  • 我想做一个名为句子的字符串,包含“你好,世界,你好吗?”

  • 我有一个程序,它接受一个单词和一个文本文件字典,并在字典中搜索与给定单词相等的单词组合(是字母表)。 我最后得到了一个字符串数组的Arraylist,每个数组都是一个包含它所使用的单词的解决方案,Arraylist是所有的解决方案。 它首先按字长(降序)排序,然后对等长字使用字母排序。 我现在对各个数组进行了排序,但我正试图按照某些规则在arraylist中对它们进行排序: 按字数递增 对于包含相

  • 所有现有的答案都使用一个类对象来显示多列。我必须使用类吗?我可以只使用一个字符串数组,如C#的ListViewItem?如果可以,怎么做? 例如,在第一列显示“你好”,在第二列显示“世界”。 fxml

  • 问题内容: 我试图将字符串数组作为参数传递给Wetland类的构造函数;我不明白如何将字符串数组的元素添加到字符串数组列表。 问题答案: 您已经具有内置方法:- 注 : -您应该使用没有。 返回一个不同的-> ,不能将其类型转换为。 然后,您将不得不使用方法,这不是很好。所以就用 注意 :-返回的列表是固定大小的列表。如果要向列表中添加某些内容,则需要创建另一个列表,并用于向其中添加元素。所以,那

  • 我正在尝试使用fscanf加载一些结构数组的默认值,这看起来像 数据按如下方式存储在文本文件中(使用不同的值重复多次): 我用fscanf/fscanf_s(尝试两者)读取的值如下: 然而,VS2012在最后抛出了一个异常,称列表已损坏。调试显示,在阅读了上述示例文本的前四行后,结构的“map”部分包含以下内容 其中X是未初始化的值。 似乎fscanf正在试图“null terminate”我的整