2012-09-01 90 views
4
得到一個ArrayList指數

所以我在我的代碼打了一個小問題,我有:Java中,通過對象

synchronized(clients) 
      clients.remove(this); 
} 

因爲當客戶端斷開連接,但現在我需要能夠發送的這個名字客戶到所有其他客戶,而要做到這一點,我essentialy需要做的是這樣

synchronized(clients) 
      broadcast("Remove:"+clients.get(this).name); 
      clients.remove(this); 
} 

但顯然我不能獲得與「本」的索引,讓我怎麼去獲得正確的客戶名稱?謝謝!

+1

我想你想從列表中刪除對象。爲什麼你需要得到index.simply你使用list.remove(object);或list.remove(inndex); –

回答

13

你爲什麼不簡單地使用this.name? 因爲你已經有了對象,爲什麼你需要獲取索引來再次獲取對象?

編輯:

要回答標題中的問題(獲取對象的指數)使用indexOf

+3

你先生,是對的,我不得不停下來做深夜編程哈哈哈! –

-1

我想你想從列表中刪除特定對象。如果您從您的代碼

int index = clients.get(this) 

然後得到指數可以輕鬆去除

clients.remove(index); 

,或者如果你從列表中獲取對象,然後刪除

clients.remove(object) // remove by object 
3
int index = clients.indexOf(this); 
// Do what ever... 
clients.remove(index); // or clients.remove(this);