1

ソケットの ArrayList があります。変数にある同じソケットをリストから削除するにはどうすればよいですか。例えば:

sockets = new ArrayList<Socket>();
sockets.add(socket);
sockets.add(socket1);
sockets.add(socket2);

ここで、インデックスである socket1 を削除したいのですが、不明です。

4

3 に答える 3

3

Socket削除したいオブジェクトへの参照があると仮定すると、次のようremoveに呼び出すだけArrayListです。

sockets.remove(socket1);

Socketはメソッドを実装していませんがequals、Object クラスの参照の等価性が使用されるため、これは機能します。そのSocketオブジェクトが にある限りArrayListremoveはそれを削除します。

于 2013-03-06T20:34:18.817 に答える
1

このコード:

import java.io.IOException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class RemoveSocketFromAList {
   public static void main( String[] args ) throws IOException {
      List< Socket > sockets = new ArrayList<>( 3 );
      Socket google = new Socket( "www.google.com", 80 );
      Socket bing   = new Socket( "www.bing.com"  , 80 );
      Socket yahoo  = new Socket( "www.yahoo.com" , 80 );
      sockets.add( google );
      sockets.add( bing   );
      sockets.add( yahoo  );
      System.out.println( sockets.size());
      sockets.remove( bing );
      System.out.println( sockets.size());
      System.out.println( sockets );
   }
}

出力:

3
2
[Socket[addr=www.google.com/74.125.230.243,port=80,localport=62411], Socket[addr=www.yahoo.com/87.248.122.122,port=80,localport=62413]]

List.remove()効果的です。

于 2013-03-06T21:14:50.543 に答える
-1

コードを完全に提供しているわけではありませんが、ここでは、以下の配列リストからアイテムを削除する方法の例を示します。

// create an empty array list with an initial capacity
    ArrayList<String> arrlist = new ArrayList<String>(5);

    // use add() method to add values in the list
    arrlist.add("A");
    arrlist.add("B");
    arrlist.add("C");
    arrlist.add("D");
    arrlist.add("E");

    System.out.println("Size of list: " + arrlist.size());

    // let us print all the values available in list
    for (String value : arrlist) {
      System.out.println("Value = " + value);
    }  

    // Removes first occurrence of "C"
    arrlist.remove("C");

    System.out.println("Now, Size of list: " + arrlist.size());

    // let us print all the values available in list
    for (String value : arrlist) {
      System.out.println("Value = " + value);
    }  

//もう一つの例

ArrayList<String> arlist=new ArrayList<String>();

//<E> it is return type of ArrayList

arlist.add("First Element"); // adding element in ArrayList
arlist.add("Second Element");
arlist.add("Third Element");
arlist.add("forth Element");
arlist.add("fifth Element");

// remove array list element by index number
arlist.remove(3);

// remove ArrayList element by Object value
arlist.remove("fifth Element");

// get elements of ArrayList 
for(int i=0;i<arlist.size();i++)
{
    System.out.println("ArrayList Element "+i+" :"+arlist.get(i));
}
于 2013-03-06T20:31:31.363 に答える