Java 从linkedlist中删除最小值

Java 从linkedlist中删除最小值,java,data-structures,Java,Data Structures,我需要从链表中删除最小的元素值。像 {8,4,7,2,9,4,5,3} 变成: {8,4,7,9,4,5,3} 我写道: public void RemoveMin() { T min = list.getInfo(); for (int i = 0; i < 7; i++) { if (list.getLink() < min) min = (T) list.getLink(); else

我需要从链表中删除最小的元素值。像

{8,4,7,2,9,4,5,3} 
变成:

{8,4,7,9,4,5,3}
我写道:

public void RemoveMin() {
    T min = list.getInfo();
    for (int i = 0; i < 7; i++) {
        if (list.getLink() < min)
            min = (T) list.getLink();
        else
            continue;
    }
} 
public void RemoveMin(){
T min=list.getInfo();
对于(int i=0;i<7;i++){
if(list.getLink()
您可以这样做:

public void RemoveMin()
{
   int nbElements = list.size()
   int lowerValueIndex = 0
   for (i = 0; i < nbElements; i++)
   {
      if(list.get(i) < list.get(lowerValueIndex)
      {
         lowerValueIndex = i;
      }
   }
   list.remove(lowerValueIndex);
}
public void RemoveMin()
{
int nbElements=list.size()
int lowerValueIndex=0
对于(i=0;i
首先,用第一个元素初始化最小值。 然后在每个元素上,将该值与已找到的较低值进行比较。 如果新值较低,则采用新的lowerValueIndex。 最后,您只需删除最低的元素。
请小心,使用此解决方案,您的数据必须具有直接可比性

如果您的问题是如何删除元素为泛型类型T的列表中的最小元素,那么您应该执行以下操作:

  • 您需要有一个比较器,通过它可以比较元素 求最小值
  • 您必须遍历列表才能找到最小元素
  • 您必须从列表中删除此元素

  • “从linkedlist中删除最小值?”是以“?”结尾的语句,而不是问题。您的问题是什么?这里的问题是什么?
    list.getLink()
    如果
    min
    是一个
    T
    ,如何比较
    min
    呢?如果min出现不止一次怎么办?这不是问题。问题以问号结尾。如果列表中包含可以与“I think
    List.get(I).compareTo(List.get(lowerValueIndex))进行比较的元素,则此解决方案很好<0
    更好。如果列表中有一个“min”,则元素应该是有序集的一部分,并且具有<>运算符。哦,对了,java没有运算符重载。@我的JVM的
    java.util.LinkedList
    中的user2151446,
    getSize()
    只需返回
    大小
    ,它不会遍历整个列表。如果您的列表仅包含整数,则您只需从daarksim的答案中选择代码即可。