从一个list集合中取出一个最近的时间方法

有一个场景,就是一个有list,list里面放的是Card对象,Card对象有多个属性值,包括卡用户信息、卡最近使用时间opTime,这个list是查询用户卡包得到的卡列表。

现在有一个需求,就是查询卡列表时,我不需要把所有的卡都查出来,只需要拿到一张用户最近使用的卡来。这个时间最近的依据就是opTime距离现在最近,要怎样来实现?

下面有一个比较简单的实现方法:

代码如下

方法源码:

	public CentralCard selectLastOne(List<CentralCard> list) {
		CentralCard card = new CentralCard();

		Long dates[] = new Long[list.size()];
		for (int i = 1; i <= list.size(); i++) {
			// 把date类型的时间对象转换为long类型,时间越往后,long的值就越大,
			// 所以就依靠这个原理来判断距离现在最近的时间
			dates[i - 1] = list.get(i).getOpTime().getTime();
		}

		Long maxIndex = dates[0];// 定义最大值为该数组的第一个数
		for (int j = 0; j < dates.length; j++) {
			if (maxIndex < dates[j]) {
				maxIndex = dates[j];
				// 找到了这个j
				card = list.get(j + 1);
			}
		}
		return card;
	}

原理就是把date类型的时间转换为long型,距离现在越近的时间的long的值就越大。

猜你喜欢

转载自blog.csdn.net/qq_35860138/article/details/82152760