【问题标题】:Remove the object LinkedList删除对象 LinkedList
【发布时间】:2014-08-14 10:22:36
【问题描述】:

我创建了一个关于 LinkedList 的程序,代码如下:

package consoleapplication;

import java.util.Scanner;
import java.util.LinkedList;

public class Index {

static int s, n ,e;

public static void main(String[] args) { 
        // LinkedList
        LinkedList k = new LinkedList();

        // input
        Scanner a = new Scanner(System.in);

        System.out.println("Size: ");
        s = a.nextInt();

        System.out.println("Element: ");
        e = a.nextInt();

        // process
        for (n = 0; n < s; n++) {
            k.add(n);
        }

        // output
        System.out.println("Index of " + e + k);
    }
}

这是输出:

Size: 12
Element: 12
Index of 12[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

程序正在运行。但我想删除一个元素。例如,我想删除 12 的索引中的 0 或任何数字。我该怎么做?

【问题讨论】:

标签: java linked-list


【解决方案1】:
k.remove(indexYouWantToRemove);

更多信息请看这里:http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#remove%28int%29

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • 不是 k.remove(indexYouWantToRemove);答案的关键部分?
  • @reporter 上半部分看起来像是对我的回答。为什么不是?
  • @MichalS SO 的目的是创建问题和有用答案的存档。即使在 Oracle,文档也会受到更改的影响
【解决方案2】:

你应该使用下一个方法

    k.remove();
    k.remove(Index);
    k.removeFirst();
    k.removeLast();

这是一个关于它的使用的简短示例:

import java.util.Arrays;
import java.util.LinkedList;

public class Index {

    public static void main(String[] args) {

        // LinkedList

        LinkedList<Integer> k = new LinkedList<Integer>() {
            {
                addAll(Arrays.asList(new Integer[]{1, 2, 3, 4, 5, 6, 7}));
            }
        };


        System.out.println("Initial List:           " + k);
        k.remove(); //Retrieves and removes the head (first element) of this list.
        System.out.println("List after k.remove():  " + k);
        k.remove(2); //Removes the element at the specified position in this list.
        System.out.println("List after k.remove(2): " + k);
        k.removeFirst();//Removes and returns the first element from this list.
        System.out.println("List after k.removeFirst():" + k);
        k.removeLast();//Removes and returns the last element from this list.
        System.out.println("List after k.removeLast(): " + k);
    }
}

然后输出:

Initial List:           [1, 2, 3, 4, 5, 6, 7]
List after k.remove():  [2, 3, 4, 5, 6, 7]
List after k.remove(2): [2, 3, 5, 6, 7]
List after k.removeFirst():[3, 5, 6, 7]
List after k.removeLast(): [3, 5, 6]

【讨论】:

    【解决方案3】:

    在 Java 中实现或询问任何内容之前,请检查它是否尚未实现。 这些方法可以帮助您:

    public boolean remove(Object o)
    

    从该列表中删除第一次出现的指定元素(如果存在)。如果此列表不包含该元素,则它不变。更正式地说,删除具有最低索引 i 的元素,例如 (o==null ? get(i)==null : o.equals(get(i)))(如果存在这样的元素)。如果此列表包含指定的元素(或等效地,如果此列表因调用而更改),则返回 true。

    public E remove(int index)
    

    删除此列表中指定位置的元素。将任何后续元素向左移动(从它们的索引中减去 1)。返回从列表中移除的元素。

    【讨论】:

      【解决方案4】:

      答案参考 http://www.tutorialspoint.com/java/util/linkedlist_remove_object.htm

      说明 java.util.LinkedList.remove(Object o) 方法从该列表中删除第一次出现的指定元素(如果存在)。如果此列表不包含该元素,则它保持不变。

      声明 以下是 java.util.LinkedList.remove() 方法的声明

      公共布尔删除(对象o) 参数 o -- 要从此列表中删除的元素(如果存在)

      返回值 如果此列表包含指定元素,则此方法返回 true

      例外 不适用

      示例 下面的例子展示了 java.util.LinkedList.remove() 方法的使用。

      包 com.tutorialspoint;

      导入 java.util.*;

      公共类 LinkedListDemo {

      public static void main(String[] args) {

        // create a LinkedList
        LinkedList list = new LinkedList();
      
        // add some elements
        list.add("Hello");
        list.add(2);
        list.add("Chocolate");
        list.add("10");
      
        // print the list
        System.out.println("LinkedList:" + list);
      
        // remove "10"
        System.out.println("10 is in the list:" + list.remove("10"));
      
        // print the list
        System.out.println("LinkedList:" + list);
      

      } }

      【讨论】:

      • 这只是您链接到的页面的逐字副本。您应该总结该页面的要点,而不是在这里复制整个内容。
      猜你喜欢
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      相关资源
      最近更新 更多