我通过使用数组来创建一个引用索引来实现一个接口。我是一名新程序员,想学习如何将当前的Array实现转换为ArrayList实现。到目前为止,这是我的代码。我如何在printCitationIndex()方法中使用ArrayLists而不是Arrays?
import java.util.ArrayList;
public class IndexArrayList implements IndexInterface{
ArrayList<Citation> citationIndex = new ArrayList<Citation>();
private String formatType;
private int totalNumCitations, numKeywords;
ArrayList<Keyword> keywordIndex = new ArrayList<Keyword>();
public void printCitationIndex(){
// Pre-condition - the index is not empty and has a format type
//Prints out all the citations in the index formatted according to its format type.
//Italicization not required
if (!this.formatType.equals("")) {
if (!isEmpty()) {
for (int i = 0; i < citationIndex.length; i++) {
if (citationIndex[i] != null) {
if (this.formatType.equals("IEEE")) {
System.out.println(citationIndex[i].formatIEEE());
} else if (this.formatType.equals("APA")) {
System.out.println(citationIndex[i].formatAPA());
} else if (this.formatType.equals("ACM")) {
System.out.println(citationIndex[i].getAuthorsACM());
}
}
}
} else {
System.out.println("The index is empty!");
}
} else {
System.out.println("The index has no format type!");
}
}
}
答案 0 :(得分:1)
最好为此使用增强型for循环(它也适用于数组,因此如果您之前找到它,语法与数组和列表相同)< / p>
for (Citation citation : citationIndex) {
if (citation != null) {
if (this.formatType.equals("IEEE")) {
System.out.println(citation.formatIEEE());
} else if (this.formatType.equals("APA")) {
System.out.println(citation.formatAPA());
} else if (this.formatType.equals("ACM")) {
System.out.println(citation.getAuthorsACM());
}
}
}
答案 1 :(得分:1)
for(Citation c:citationIndex){
if(c!=null){
//...code here
}
}
for (int i = 0; i < citationIndex.size(); i++) {
if (citationIndex.get(i) != null) {
//...code here
}
}