[英]container call just terminates
这是主文件
public class program5 {
public static void main(String[] args) {
Container container = new Container();
container.add("1 val");
container.add("2nd val");
container.add("val 3rd");
}
}
这是容器 class 及其方法
import java.util.Arrays;
import java.util.Iterator;
import java.util.Objects;
ublic class Container implements Iterable<String> {
/**
* Holds the elements of a container.
*/
private String[] values;
/**
* Constructor for making new string
*/
public Container() {
values = new String[0];
}
/**
* Method for adding elements to a container.
*
* @param string - string to initialize a new container element
*/
public boolean add(String string) {
try {
String[] temp = values;
values = new String[temp.length + 1];
System.arraycopy(temp, 0, values, 0, temp.length);
values[values.length - 1] = string;
return true;
} catch (ClassCastException ex) {
ex.printStackTrace();
}
return false;
}
public Iterator<String> iterator() {
return new CustomIterator<String> (values);
}
这是迭代器及其方法
import java.util.Iterator;
public class CustomIterator<String> implements Iterator<String> {
int IndexPos=0;
String[] internal_list;
public CustomIterator(String[] internal_list) {
this.internal_list=internal_list;
}
public boolean hasNext() {
if( internal_list.length >= IndexPos + 1) {
return true;
}
return false;
}
public String next() {
String val= internal_list[IndexPos];
IndexPos++;
return val;
}
}
好吧,程序应该是这样工作的:只需在容器类中创建一个字符串数组(不能由 java collections 框架算法创建),可以添加,然后迭代器应该开始工作,然后打印所有字符串(其中 3 个)。 但不知何故没有错误,但代码终止。 你能帮我找出导致程序终止的原因吗?
问题是我忘记编写代码来显示任何内容,并且因为我们的容器是可迭代的,如 class 初始化中所述,我们可以将以下代码部分添加到“main”中,此代码将起作用:
for(String str : container) {
System.out.println(str);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.