2013-12-16 80 views
0

我正在嘗試獲取矢量的內容。 我有一個存儲用戶的詳細信息,如名稱和密碼類:找到矢量大小的Java矢量容量

package Login; 

/** 
* 
* @author Kutoma 
*/ 
public class User{ 
    private String name; 
    private String password; 


    public User(String aName, String password){ 
    name = aName; 
    this.password = password; 

    } 


    public boolean checkPassword(String pass) 
    { 
     if(password.equals(pass)) 
      return true; 
      else 
      return false; 

    } 
    public String getName(){ 
     return name; 
    } 
    public String getPassword(){ 
     return password; 
    } 

} 

我再有一類稱爲setOfUsers這增加了用戶,發現他們的名字:

package Login; 


public class SetOfUsers extends Vector<User> { 
private static SetOfUsers register = null; 

public SetOfUsers(){ 
    super(); 
User temp = new User("Adam","12345"); 
add(temp); 
} 
public static SetOfUsers getInstance(){ 
    if (register == null)   
     { register = new SetOfUsers(); } 
    return register;  
} 


public void addUser(User aUser){ 
    super.add(aUser); 
} 

public User findUserByName(String name) 
{ 
    for(int i = 0; i < capacity(); i++){ 

     User user = elementAt(i); 
     if(user.getName().equals(name)){ 
      return user; 
     } 

    } 
    return null; 
} 

在我收到的那一刻這個錯誤java.lang.ArrayIndexOutOfBoundsException:1> = 1 但是,我已經使用容量來查找向量的大小,不知道我在哪裏出錯。 我的主要程序有當登錄按鈕被點擊它應該打印出 用戶詳細信息

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 

    SetOfUsers register = SetOfUsers.getInstance(); 
    String name = nameText.getText(); 
    User user = register.findUserByName(name); 
    String passTxt = passText.getText(); 
    user = register.findUserByName(passTxt); 
    System.out.print(user); 


}       

回答

3

使用大小(),而不是容量下面的代碼()。

容量():

返回當前容量(其內部數據數組的長度,保持在該領域本向量的elementData中)

尺寸():

返回此向量中組件的數量。

檢查文檔here