Java 数组列表的索引?
从我的AP计算机科学评论书: 以这个节目段为例。您可以假设Java 数组列表的索引?,java,arraylist,Java,Arraylist,从我的AP计算机科学评论书: 以这个节目段为例。您可以假设wordList已声明为ArrayList for(字符串s:wordList) 如果(s.长度()
wordList
已声明为ArrayList
for(字符串s:wordList)
如果(s.长度()<4)
System.out.println(“短词”);
“短单词可以打印的最大次数是多少?”
书上说答案是wordList.size(),但为什么不是wordList.size()-1呢?
ArrayList的索引与常规数组不同吗?我的书说了一些关于它的东西,自动将一个添加到索引中,但我可能读错了
书上说答案是wordList.size(),但为什么不是wordList.size()-1呢
它不会也不可能,因为它可以打印的最大次数是wordList
中的所有单词少于四个字符
我认为您可能将ArrayList
中的元素数量与ArrayList
的有效索引混淆了。Java中的数组和List
s是基于零的,因此从0
运行到List.size()-1
。这意味着最后一个元素位于list.size()-1
。这样想吧。如果您有数字0,1,2,3
,您总共有多少个数字?你有四个号码。但是,如果将这些数字放入一个基于零的数组中,则第一个元素位于位置0
,第二个元素位于位置1
,依此类推,直到最后一个元素位于位置3
这张图片可能会帮助您:
Indices: 0 1 2 3
+---+---+---+---+
Values: | 1 | 2 | 3 | 4 |
+---+---+---+---+
书上说答案是wordList.size(),但为什么不是wordList.size()-1呢
它不会也不可能,因为它可以打印的最大次数是wordList
中的所有单词少于四个字符
我认为您可能将ArrayList
中的元素数量与ArrayList
的有效索引混淆了。Java中的数组和List
s是基于零的,因此从0
运行到List.size()-1
。这意味着最后一个元素位于list.size()-1
。这样想吧。如果您有数字0,1,2,3
,您总共有多少个数字?你有四个号码。但是,如果将这些数字放入一个基于零的数组中,则第一个元素位于位置0
,第二个元素位于位置1
,依此类推,直到最后一个元素位于位置3
这张图片可能会帮助您:
Indices: 0 1 2 3
+---+---+---+---+
Values: | 1 | 2 | 3 | 4 |
+---+---+---+---+
当然,最大值是wordList.size(),当所有wordList的单词都是短单词时会发生这种情况。然后,从位置0到位置wordList.size()-1(包括两者)的wordList是短的。当然,最大值是wordList.size(),当所有wordList的单词都是短单词时会发生这种情况。然后,从位置0到位置wordList.size()-1(包括这两个)的wordList较短。数组或ArrayList的最大索引将为size-1。这是因为集合的索引基于0。您可以将索引视为偏移量 假设我有一个包含以下内容的ArrayList:
[“abc”]
数组中有1
元素,因此其大小为1
。第一个元素的索引(或偏移量)是0
,因为它位于数组的根。如果我的数组是:
[“abc”、“bcd”、“cde”、“def”]
然后您可以看到数组中有4个条目,因此大小为
4
。最后一个元素“def”的偏移量是3,因为您必须从根向前走3步才能到达。0步给出“abc”,1步给出“bcd”,2=“cde”和3=“def”。因此,大小是4,但您无法获取第4个索引处的项目,因为4个步骤将超出“def”的范围。数组或ArrayList的最大索引将是size-1。这是因为集合的索引基于0。您可以将索引视为偏移量
假设我有一个包含以下内容的ArrayList:
[“abc”]
数组中有1
元素,因此其大小为1
。第一个元素的索引(或偏移量)是0
,因为它位于数组的根。如果我的数组是:
[“abc”、“bcd”、“cde”、“def”]
然后您可以看到数组中有4个条目,因此大小为4
。最后一个元素“def”的偏移量是3,因为您必须从根向前走3步才能到达。0步给出“abc”,1步给出“bcd”,2=“cde”和3=“def”。因此,大小是4,但您无法获取第4个索引处的项目,因为4个步骤超出了“def”。for(字符串s:wordList)
如果(s.长度()<4)
System.out.println(“短词”);
基本上是说“调用列表中的第一个单词。如果这个单词的长度小于4个字母,请在控制台上打印“短单词”。现在,重复第二个单词,依此类推,直到没有单词为止。”
因此,如果列表中的所有单词长度小于4个字母,“短单词”将被打印wordlist.size()次。for(字符串s:wordlist)
如果(s.长度()<4)
System.out.println(“短词”);
基本上是说“调用列表中的第一个单词。如果这个单词的长度小于4个字母,请在控制台上打印“短单词”。现在,重复第二个单词,依此类推,直到没有单词为止。”
因此,如果列表中的所有单词长度小于4个字母,“短单词”将被打印wordlist.size()次。您会问:
“短单词可以打印的最大次数是多少?”
如果wordList
的所有项目都有length<4
,则所有项目都将被打印
那么,wordList
有多少个iTen?简单:wordList.size()
Arr
for(String s : wordList)
if(s.length() < 4)
System.out.println("SHORT WORD");
ArrayList wordList = new ArrayList<String>();
wordList.add("firstWord");
wordList.add("2ndWrd");
wordList.add("3w");
wordList.get(0); // returns "firstWord"
wordList.get(1); // returns "2ndWrd"
wordList.get(2); // returns "3w"
wordList.get(3); // throws an exception (IndexOutOfBoundsException)
ArrayList<String> wordList = new ArrayList<String>() {
@Override
public Iterator<String> iterator() {
return new Iterator<String>() {
@Override
public boolean hasNext() {
return true;
}
@Override
public String next() {
return "";
}
@Override
public void remove() {
throw new UnsupportedOperationException("Not supported yet.");
}
};
}
};
for (String s : wordList) {
if (s.length() < 4) {
System.out.println("SHORT WORD");
}
}