Java – 一种了解集合是否有序的方法
发布时间:2020-12-15 08:46:52 所属栏目:Java 来源:网络整理
导读:我正在寻找一种方法来查找运行时,是否订购集合.有什么办法吗? 编辑:我很抱歉提出错误的问题.我的意思是说有一些通用的方法可以说HashMap不存储被插入的元素的顺序,而LinkedHashMap就是这样做的. 解决方法 对于实现Comparable接口的元素,您可以检查它们是否
我正在寻找一种方法来查找运行时,是否订购集合.有什么办法吗?
编辑:我很抱歉提出错误的问题.我的意思是说有一些通用的方法可以说HashMap不存储被插入的元素的顺序,而LinkedHashMap就是这样做的. 解决方法
对于实现Comparable接口的元素,您可以检查它们是否处于“自然”顺序.
public static <T extends Comparable<? super T>> boolean isOrdered(Iterable<T> list) { Iterator<T> i = list.iterator(); if (i.hasNext()) { T previous = i.next(); while (i.hasNext()) { T current = i.next(); if (previous.compareTo(current) > 0) return false; previous = current; } } return true; } 否则,您必须定义一个比较器,它可以根据您的顺序定义比较您的对象,并将其传递给测试. public static <T> boolean isOrdered(Iterable<T> list,Comparator<? super T> c) { Iterator<T> i = list.iterator(); if (i.hasNext()) { T previous = i.next(); while (i.hasNext()) { T current = i.next(); if (c.compare(previous,current) > 0) return false; previous = current; } } return true; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |