-2

Javaでメソッドを使用せずにリストから要素を削除するにはどうすればよいですremove()か?? コレクションの概念を使用します。

通常、私は要素を削除することを知っていますremove()

import java.util.ArrayList;

public class ArrayListDemo {
   public static void main(String[] args) {

    // 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("G");
    arrlist.add("E");
    arrlist.add("F");
    arrlist.add("M");


    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 element "E"
    arrlist.remove("E");

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

1 に答える 1

0

遊んでみますが、AbstractCollection にある clear() の明らかな実装は内部で Iterator remove() メソッドを使用しているため、これは一種のチートです。これが望まれていない場合は、おそらく異議によって質問が明確になります。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test {
  public static void main(String[] args) {
    List<String> data = new ArrayList<String>(Arrays.asList(new String[] { "a",
        "b", "c", "d" }));
    System.out.println(data);
    funnyRemove(data, 2);
    System.out.println(data);
  }

  public static <T> void funnyRemove(List<T> list, int index) {
    if (index < 0 || index >= list.size()) {
      throw new IllegalArgumentException("index out of range");
    }
    List<T> part1 = new ArrayList<T>(list.subList(0, index));
    List<T> part2 = new ArrayList<T>(list.subList(index + 1, list.size()));
    list.clear();
    list.addAll(part1);
    list.addAll(part2);
  }

}
于 2013-09-02T20:47:14.730 に答える