如何迭代到对象数组的长度?

问题描述:

我正在使用“delnames”对象数组来创建这些动物园项目和另一种方法,我想删除它们。创建需要为每个单独的方法,但删除不,只需点击删除将做。所以我想在同一个数据提供者对象数组上迭代它。
这是我想要实现的;我正在使用java在ubuntu上编写我的脚本。如何迭代到对象数组的长度?

@DataProvider(name = "delnames") 
    public Object[][] dnames() { 
     return new Object[][] { { "zoo" }, { "owl" }, { "lion"}, 
         { "Peacock" }, { "Chimp" }, { "Fish" }, {"Duck"} }; 
    } 

@Test(dataProvider = "delnames") 
public void delete(String name1){ 
for (lenth of dnames){ ================ >> HOW ????? 
driver.findElement(By.linkText("delete")); 
syso(name1+" is deleted"); 
} 
} 
+1

你有没有试过用“迭代数组java”或“for循环数组java”或类似的东西? – Alderath 2013-04-11 10:49:16

如果它是一个ArrayList或载体:

for (int i = 0; i < dnames.size(); i++) { 
    ... 
} 

如果它是一个数组:不是二维数组

for (int i = 0; i < dnames.length; i++) { 
    ... 
} 
+0

@jampI已经尝试了你给我的东西。我尝试了**(int i = 0; i {
} **,但它只提取数组中的第一项。我想借助数组删除数组中的所有这7个项目。 – user2172723 2013-04-11 11:01:32

+0

你想删除数组本身还是清空数组? – 2013-04-11 11:16:41

+0

不是数组:)。该项目来自我的应用程序。我已经创建了几个项目,现在我必须删除它们,以便在控制台中查看此信息,我正在将系统置于“项目已删除”状态。项目的删除只是在创建之后进行的,所以我想两次使用相同的数组。首先我用于创建然后删除。 – user2172723 2013-04-11 13:04:02

我认为你可以使用选一个维数组, 。

Object dnames [] = new Object[]{"owl","zoo","Chimp","Fish","Duck"}; 

我们可以通过一个维数组环路显然如下

for(Object item: dnames) 
{ 
System.out.println(item); // do your stuff here with item 
} 
+0

我们可以做什么迭代一个二维数组?我们需要删除然后打印“'item'+”已删除“,对于我的问题中该数组的每个项目? – user2172723 2013-04-11 11:27:11

+0

@Cedric,我尝试了你的方式并将其更改为一维数组,然后应用您给我的循环。但它给出了dnames下的错误(red groovy line):“将params的类型改为object”,当我这样做时,它会在第二行的参数下面给出红线,表示只能遍历数组或java实例的实例.lang.iterable。 – user2172723 2013-04-12 07:54:54

@Test(dataProvider = "delnames") 
public void delete(String name1){ 
    for (Object[] params : dnames()) { 
    for (Object o : params) { 
     ... 
    } 
    } 
} 

,你不想做这个测试中的方法,因为dnames()是它的数据提供者,但我假设你只是以此为例。

+0

我尝试了你的方式,并改变为一维数组,并应用了你给我的循环,但它给出dnames下的错误(红色groovy行):“将params的类型更改为对象”,当我这样做,它会在第二行的params下给出红线,说只能迭代和实例数组或java.lang.iterable的实例 – user2172723 2013-04-12 10:01:38