【问题标题】:Explanation of a few lines of code几行代码的解释
【发布时间】:2015-02-11 14:44:24
【问题描述】:

我在理解这些代码行时有点困难。

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 它仍然有效?

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

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

【问题讨论】:

  • 您阅读文档了吗?
  • 是的,我做到了。它没有很好地解释它让我理解。
  • explain every single line of code, preferably in depth 似乎是一个愚蠢的要求。
  • results 保存(我猜)SQL 查询的结果,表示为Member 类的一堆实例。它用于分配和填充包含Member 的替代表示的数组:每个Member 表示为Object[]9 确实是多余的。
  • 我只是在寻求一些帮助以使我更好地理解它。看不出有什么不妥吗?我觉得人们给我“竖起大拇指”很奇怪。我真的在为我遇到的问题寻求帮助。

标签: java loops object arraylist foreach


【解决方案1】:
ArrayList<Member> results = null;

初始化一个成员类型的数组

 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" };

创建一个对象数组,其字符串值显示在 { }

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

创建一个二维对象数组。

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

遍历结果数组中的每一项。

   data[i] = member.toObjectArray();

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

   i++;
  }

【讨论】:

  • 谢谢! :) 你知道为什么当我在数字 9 的地方不写任何东西时我看不到任何区别吗?我可以把它留空,没有任何错误——即使我运行我的程序。
  • 它是一个二维数组,它只是一个解释数组大小的数字。它去 [#rows][#columns]
  • 啊可爱!非常感谢帮忙。你刚刚教会了我一些东西:)
【解决方案2】:

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

我不明白 ArrayList 在做什么 - 或者将它设置为 MemberSQL.member() 做什么。

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

我也不明白 Object[][] data = new Object[results.size()[9] 确实......而且,为什么即使我删除了数字 9 它仍然有效?

这一行创建了一个新的二维数组Objects。你可以把它想象成一个网格。网格的行数与results 列表的元素数和9 列数相同。在 Java 中,不指定数组最后一维的大小是合法的,稍后再考虑。这就是为什么如果你把 9 排除在外,它仍然有效。

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

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

【讨论】:

  • 非常感谢。它帮助我比以前更好地理解它!我真的很感激:)
  • @AdemÖkmen,如果您认为答案有帮助,请不要忘记投票。
  • 它需要 15 的声望才能做到这一点。好像我需要我的代表上升一点:P
  • @AdemÖkmen 至少你可以接受任何一个答案
猜你喜欢
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 2020-08-20
相关资源
最近更新 更多