2014-06-11 27 views
-3

我有以下的代码行:如何通过一个ArrayList访问结构中的Java

private ArrayList<wordClass>[] words; 

public class wordClass { 
    public String wordValue = null; 
    public int val = 0; 
    public boolean used = false; 
} 

反正我有可以访问通过的话wordValueval,和used?喜欢words[5].val?我知道我可以做到这一点,如果他们只是在wordClass的数组中,但我想要一个动态数组,使其更容易从数组中加减。我知道值应该是private。只是不想编写getter和setter。

谢谢。

+0

那么,他们是公共... - 顺便说一句,检查什么标签是,和你的术语,使用它们之前。 – ChiefTwoPencils

回答

1

你真的想要一个ArrayList的数组吗? 这似乎不正确。

Array s中,您使用[]来访问(words[0])。 在ArrayList s,您应该使用words.get(0)。 你已经编码的方式,你应该使用:words[0].get(0).val来获得第一个值。

但我建议您查看您的words定义。

ArrayList的文档:http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

问候, 布鲁诺

+0

谢谢。没有利用“得到”。我会在9分钟内接受你的回答。 –

0

你的代码是有点过了动态数组(Java有不可变的数组),所以你需要一个ArrayList。此外,Java使用大写字母类名(请遵循约定) -

// like this, changing wordClass to WordClass. Also, using the diamond operator 
private ArrayList<WordClass> words = new ArrayList<>(); 

要访问您的WordClass字段,你可以使用类似 -

for (WordClass wc : words) { 
    if (wc.used) { 
    System.out.println(wc.wordValue + " = " + wc.val); 
    } 
} 

注意,您还需要创建WordClass实例并将它们放入单词List

0

为每个值编写包装类。例如你称之为“获得者”。

然后调用:

words[1].getWordValue() ==> None 

+2

你打破了Java命名约定。 – ChiefTwoPencils

+0

我一直在使用蛇壳来工作,所以我忘记了正确的外壳。我的错。 – swsmith

相关问题