在Java中迭代2D数组

kat*_*ate 0 java

你好,我有一个问题,我想要你的帮助,我有一个名为citylink [10] [2]的表,我想在我继续我的代码之前进行检查,如果它是完整的继续,如果它不打破!我知道我应该使用if循环,但我不知道该放在里面!!

编辑

for(int i=0; i < citylink.length; i++) {
  if(citylink[][]) {
    body=pF.fetchPage(citylink[i][1]);
  }
}
Run Code Online (Sandbox Code Playgroud)

我想首先检查我的表中是否有数据或至少5个第一列!!!然后插入正文并使用此命令

pol*_*nts 5

您应该考虑使用java.util.List而不是数组(Effective Java 2nd Edition,Item 25:Prefer list to arrays).看起来你也在使用2元素数组来表示"城市链接"; 这不是您数据的最佳模型.

你应该定义一个class CityLink,也许是这样的:

public class CityLink {
   final City source;
   final City destination;
   //...
}
Run Code Online (Sandbox Code Playgroud)

然后你宣布一个List<CityLink>.

API链接

  • java.util.List<E>
    • int size() - 返回此列表中的元素数.
    • E get(int index) - 返回此列表中指定位置的元素.
    • add(E e) - 将指定的元素追加到此列表的末尾
  • java.util.ArrayList<E>
    • List接口的可调整大小的数组实现.

关于保持事物的数量

如果你坚持使用数组,那么你必须保持数组中有多少元素是"真实"元素的数量.最简单的方法是int count = 0;每次向数组添加元素时都要增加.

在任何时候,在数组中唯一的"真正"的元素arr[i],其中i从去0(含)至count(不包括).当count == arr.length;那么数组已满,不能再容纳任何附加元件.

同样,需要说的是,这样做是解决当前问题的一种可怕方式,并且将来只会导致更多问题.你真的应该使用一个List.


在列与行

或至少5个第一列!

鉴于此声明:

int[][] table = new int[10][20];
Run Code Online (Sandbox Code Playgroud)

传统table上认为有10行,每行有20列.

  • 你有很高品质的水晶球. (7认同)