2016-03-16 57 views
0

我無法獲得在我for循環中顯示的數組列表長度。我是一名編程初學者/新手,所以我可能完全離開這裏。 ArrayList的輸出顯示爲0.我正在嘗試將jTextBox中的字符串與arraylist進行比較,並查看String是否存在於List內。ArrayList長度

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()); 

      } 
    } 

這裏是基於構造函數的getter/setter /構造

 FAS_Define[] fasList = new FAS_Define[10]; 
     fasList[0] = new FAS_Define("FAS2552", new ArrayList(Arrays.asList("iSCSI", "FCoE"))); 

     ValidateProtocolCompatiblity(fasList,protocolField, fasField); 

類概述了原始數組列表

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;} 
+4

'如果(faslist [指數] .getName()== selectedFAS)'不用'=='比較字符串。使用'equals'方法。更多信息在「[如何比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java)」 – Pshemo

+0

OP有大量的錯誤,可以受益於重新開放。 – shmosel

回答

0

而不是

faslist[index].getSupportedProtocol().toArray().length 
我原來的數組列表

用途:

faslist[index].getSupportedProtocol().size() 

沒有必要將arrayList轉換爲數組。而對於獲得數組列表的元素定索引處,使用:

faslist.get(index).getSupportedProtocol().toString() 

而不是

faslist[index].getSupportedProtocol().toString()