java - How to get rid of IndexOutOfBoundsException from an ArrayList -


when start server , client connects error:

waiting clients ... client connected from: driton pc java.lang.indexoutofboundsexception: index: 1, size: 1 

i not quite understand why happens when have followed after internet , example works , not

public class chatserver {   public static arraylist<socket> connectionarray = new arraylist<socket>();  public static arraylist<string> currentusers = new arraylist<string>();  public static void main(string[] args) throws ioexception{     try     {         final int port = 444;         serversocket server = new serversocket(port);         system.out.println("waiting clients...");          while(true)         {             socket sock = server.accept();             connectionarray.add(sock);             system.out.println("client connected from: "+ sock.getlocaladdress().gethostname());             addusername(sock);             chat_server_return chat = new chat_server_return(sock);             thread x = new thread(chat);              x.start();         }     }         catch(exception x){system.out.println(x);} }  public static void addusername(socket x) throws ioexception {     scanner input = new scanner(x.getinputstream());     string username = input.nextline();     currentusers.add(username);     for(int = 1; 1 <= chatserver.connectionarray.size(); i++){         socket temp_sock = (socket) chatserver.connectionarray.get(i-1);         printwriter out = new printwriter(temp_sock.getoutputstream());         out.println("#?!"+ currentusers);         out.flush();      } } 

it runs for loop twice.

the condition for loop incorrect if nothing ever removed. change to:

i <= chatserver.connectionarray.size() 

but conventional way of processing loop follow 0-based index , not subtract 1 later:

for(int = 0; < chatserver.connectionarray.size(); i++){     socket temp_sock = (socket) chatserver.connectionarray.get(i); 

Comments

Popular posts from this blog

monitor web browser programmatically in Android? -

Shrink a YouTube video to responsive width -

wpf - PdfWriter.GetInstance throws System.NullReferenceException -