java - 使用迭代器检查具有数字 id 的特定对象的升序(行主要顺序)arraylist?
问题描述
我有一个实现迭代器的类,这个类中的每个对象都有一个引用数字的 id。
public class Shelf extends Observable implements Iterable<Book>{
final static int NumRow = 10;
final static int NumCol = 10;
Book[][] books = new Book[NumRow][NumCol];
# Here is the code for Iterator<Book> iterator();
我已经用 hasNext 和 Next 方法实现了迭代器
class Book implement Comparable<Book>{
private int id
public int getId() {return id;}
如何检查整个数组列表是否按每个对象的 id 升序排列?这是我写的
boolean ascending order(){
boolean check = true;
Iterator<Book> iter = shelf.iterator();
while (iter.hasNext()){ \\How can I wrote here?
}
return check;
如何将当前 id 与下一个 id 进行比较?
解决方案
您可以存储 的值id
并检查下一个元素,然后更改 的值previous
private static boolean isOrdered() {
Iterator<Book> ite = shelf.iterator();
int previousId = Integer.MIN_VALUE;
while (ite.hasNext()) {
Book next = ite.next();
if (next.getId() < previousId) {
return false;
}
previousId = next.getId();
}
return true;
}
推荐阅读
- ios - userNotificationCenter 中的completionHandler 实际上是做什么的?
- php - API YouTube API 插入数据库的问题
- node.js - publishactions 范围不起作用请检查并让我更新是否有任何权限
- git - 如何将具有相关更改的两个分支合并到 master 中?
- vue.js - Vue + Vuetify 为移动端定制日历组件
- reactjs - 在 React App 中使用 axios 在 CakePHP API 中执行 PUT 方法时,在预检选项中未找到 404 错误
- java - getSupportLoaderManager(id, args, ??) 的第三个参数类型是什么
- android - Android 获取/设置 ImageView 的值
- asp.net-core - RabbitMq 包中缺少“PublishAsync”
- amazon-web-services - AWS API 网关服务编排