在这个项目中,我正在尝试从ArrayList访问信息,该列表只包含字符串的日期。
这是我尝试过的课程的一部分。如果没有全班让我很难理解,我可以编辑......
public ArrayList<String> getTicketDates(){
ArrayList<String> theDateArray= new ArrayList<>();
int i;
for (i=0; i <tickets.size(); i++){
if(tickets .get(i).getPurchased()== false){
theDateArray.add(tickets.get(i).getDate());
}
}
for(int f=0; f<theDateArray.size();f++){
System.out.println(theDateArray.get(f)+ " ");
}
return theDateArray;
}
public int getTickets(String date){
int tix= theDateArray.indexOf(date);
int occurrences= Collections.frequency(theDateArray, tix);
if (tix>=0){
System.out.println(occurrences);
}
return occurrences;
}
第二类,我试图计算一个特定日期在前一个ArrayList中出现的次数,但是它表示无法将theDateArray解析为变量。
我尝试过的一种方法就是调用整个方法getTicketDates(),但它的作用是打印出ArrayList三元组,并且这些事件仍然不起作用。
答案 0 :(得分:1)
您的theDateArray
变量范围是getTicketDates()
方法的本地范围,因此您无法在其他方法中访问它,因此将其声明为实例变量,如下所示:
public class YourTicketsClass {
//declare ArrayList as an instance variable
ArrayList<String> theDateArray= new ArrayList<>();
public ArrayList<String> getTicketDates(){
int i;
for (i=0; i <tickets.size(); i++){
if(tickets .get(i).getPurchased()== false){
theDateArray.add(tickets.get(i).getDate());
}
}
for(int f=0; f<theDateArray.size();f++){
System.out.println(theDateArray.get(f)+ " ");
}
return theDateArray;
}
public int getTickets(String date){
int tix= theDateArray.indexOf(date);
int occurrences= Collections.frequency(theDateArray, tix);
if (tix>=0){
System.out.println(occurrences);
}
return occurrences;
}
}
答案 1 :(得分:0)
在方法之外定义数组列表,然后填充方法内的列表。像这样:
public class YourdataClass {
private List<String> theDateArray = new ArrayList<String>();
public ArrayList<String> getTicketDates(){
int i;
for (i=0; i <tickets.size(); i++){
if(tickets .get(i).getPurchased()== false){
theDateArray.add(tickets.get(i).getDate());
}
}
for(int f=0; f<theDateArray.size();f++){
System.out.println(theDateArray.get(f)+ " ");
}
return theDateArray;
}
public int getTickets(String date){
int tix= theDateArray.indexOf(date);
int occurrences= Collections.frequency(theDateArray, tix);
if (tix>=0){
System.out.println(occurrences);
}
return occurrences;
}
}/* end class */
以下是一些参考资料。 http://www.javawithus.com/tutorial/scope-and-lifetime-of-variables https://en.wikibooks.org/wiki/Java_Programming/Scope