gpt4 book ai didi

java - 比较器获取链接列表中的最大值,并从比较中排除链接列表的第一个元素

转载 作者:行者123 更新时间:2023-12-02 04:03:53 25 4
gpt4 key购买 nike

我试图从 LinkedList 中提取最大值,但有一个条件是我希望 LinkedList 的第一个元素不进行比较,并且不依赖于存储在第一个元素内的值。我可以使用 LinkedList 的索引或其他内容通过比较排除第一个元素吗?这就是我所做的,但我不知道如何实现这个条件:

import java.util.*;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class HelloWorld{

public static void main(String args[]) {
// create a linked list

LinkedList<HashMap<Integer, Integer>> PathList = new LinkedList<HashMap<Integer, Integer>>();
Integer n = new Integer(0);
// add elements to the linked list

for(int i=1; i<4; i++){
HashMap<Integer, Integer> PMap = new HashMap<Integer, Integer>();
PMap.put(1,0);
PMap.put(2,i);
PMap.put(3,2*i);
PathList.add(n,PMap);
n++;
}

Iterator x = PathList.listIterator(0);
// print list with the iterator
while (x.hasNext()) {
HashMap<Integer, Integer> PMap = new HashMap<Integer, Integer>();
PMap = (HashMap<Integer, Integer>)x.next();
System.out.println(PMap.get(3));
}
Comparator<HashMap> cmp = new Comparator<HashMap>() {
@Override
public int compare(HashMap hm1, HashMap hm2) {

return new Integer((Integer)hm1.get(3)).compareTo(new Integer((Integer)hm2.get(3)));
}
};
System.out.println("Max value in this element " + Collections.max(PathList,cmp));

}

}

最佳答案

您可以从原始列表创建一个子列表(它只是一个 View ,它不会复制所有元素)。

所以你可以改变:

System.out.println("Max value in this element " + Collections.max(PathList,cmp));

致:

LinkedList<HashMap<Integer, Integer>> pathListWithoutFirst = PathList.subList(1, PathList.size());
System.out.println("Max value in this element " + Collections.max(pathListWithoutFirst, cmp));

关于java - 比较器获取链接列表中的最大值,并从比较中排除链接列表的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34583412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com