【发布时间】:2016-03-16 19:27:01
【问题描述】:
我无法让数组列表长度显示在我的 for 循环中。我是编程的初学者/新手,所以我可能完全不在这里。 ArrayList 的输出显示为 0。我正在尝试将来自 jTextBox 的字符串与 arraylist 进行比较,并查看 String 是否存在于 List 中。
public static void ValidateProtocolCompatiblity(FAS_Define[] faslist, String selectedProtocol, String selectedFAS){
for (int index=0; index < faslist.length;index++){
if (faslist[index].getName() == selectedFAS)
for (int j=0; j < faslist[index].getSupportedProtocol().toArray().length;j++){
fasProtocolList.add(faslist[index].getSupportedProtocol().toString());
}
}
这是我基于构造函数的原始数组列表
FAS_Define[] fasList = new FAS_Define[10];
fasList[0] = new FAS_Define("FAS2552", new ArrayList(Arrays.asList("iSCSI", "FCoE")));
ValidateProtocolCompatiblity(fasList,protocolField, fasField);
用于概述原始数组列表的 getter/setter/constructor 类
public class FAS_Define {
private int id;
private String name;
private List<String> supportedProtocol;
private static int numberofDevice = 0;
public FAS_Define(String cName, ArrayList<String> cSupportedProtocol){
this.name = cName;
this.supportedProtocol = new ArrayList<String>();
numberofDevice++;
id = numberofDevice;
}
public String getName(){return name;}
public void setName(String name){this.name = name;}
public List<String> getSupportedProtocol(){return supportedProtocol;}
public void setSupportedProtocol(List<String> supportedProtocol){this.supportedProtocol = supportedProtocol;}
【问题讨论】:
-
if (faslist[index].getName() == selectedFAS)不要将字符串与==进行比较。使用equals方法。更多信息请访问“How do I compare strings in Java?” -
OP 有很多可以从重新打开中受益的错误。