解释几行代码

时间:2014-12-12 20:02:33

标签: java loops object arraylist foreach

我很难理解这些代码行。

ArrayList<Member> results = null;
 try {
   results = MemberSQL.member();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }


Object[] header = { "name","lastname", "ID", "Phone", "Race", "Member",
    "Divorced", "Married", "Single", "Location" };

  Object[][] data = new Object[results.size()][9]; 

  int i = 0;
  for (Member member : results) {
   data[i] = member.toObjectArray();
   i++;
  }

我不明白ArrayList正在做什么 - 或者它与MemberSQL.member()的设置相同。

我也不明白Object [] [] data = new Object [results.size()[9]会...而且,为什么即使我删除数字9仍然可以工作?

对于每个循环,我不知道如何解释它。我已经说过了:对于Member的每个对象,它都会将数据添加到位于Member中的toObjectArray。这是真的?我不知道:/

如果有人帮我解释每一行代码,最好是深入解释,我会永远感激不尽。 谢谢:)

2 个答案:

答案 0 :(得分:1)

ArrayList<Member> results = null;

初始化Member

类型的数组
 try {
   results = MemberSQL.member();

MemberSQL.member是一个返回Member

类型的ArrayList的函数
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }


Object[] header = { "name","lastname", "ID", "Phone", "Race", "Member",
    "Divorced", "Married", "Single", "Location" };

创建一个Objects数组,其中的字符串值显示在{}

之间
  Object[][] data = new Object[results.size()][9]; 

创建一个二维对象数组。

  int i = 0;
  for (Member member : results) {

循环遍历结果数组中的每个项目。

   data[i] = member.toObjectArray();

member.toObjectArray()是一个返回对象数组的函数。 data [i]设置为此值。

   i++;
  }

答案 1 :(得分:1)

我们从这段代码中不知道的一些事情。具体来说,我们不知道Member是什么,我们也不知道MemberSQL是什么。但是没关系,我们并不是真的需要解释这里发生的事情。

  

我不明白ArrayList正在做什么 - 或者它与MemberSQL.member()的设置相同。

好的,首先,ArrayList正在执行ArrayList总是做的事情 - 在方便的容器中保存一堆相同类型的数据,因此我们可以将其作为一个组。我们不知道MemberSQL.member()做了什么,但我们可以推测它会构建一堆Member个对象并将它们放入ArrayList。当我们设置results = MemberSQL.member()时,这意味着我们要运行MemberSQL.member()方法,并将其返回值保留为results变量。

  

我也不理解Object [] [] data = new Object [results.size()[9]的确如此...而且,为什么即使我删除数字9仍然可以工作?< / p>

此行创建一个新的Object s二维数组。您可以将其视为网格。网格具有与results列表具有元素相同的行数,以及9列。在Java中,不指定数组的最后一个维度的大小是合法的,并且稍后会担心它。这就是为什么如果你把9分开的话,它仍然可以工作的原因。

  

对于每个循环,我不知道如何解释它。我已经说过了:对于Member的每个对象,它都会将数据添加到位于Member中的toObjectArray。这是真的吗?

实际上,你有这种倒退。它实际上正在查看member并运行其toObjectArray()方法。它将结果保存在data数组中。