区域元素获取_NavigableSet

很多时候我们都需要对问题结果进行策略性整理方可符合要求;常见排行,有序等等。

这边有个问题是试图从一堆数据中找到符合条件的前后 10 个数据, 条件是与指定的值接近的前后 10 个。设想吧

如果这一堆数据是有序的就好了。

如果上面的满足了, 能直接取道我自己元素的位置就好了。这样的话。 index++ 和 index-- 分别取 10 次就 ok 了。

于是,决定用 NavigableSet<E> 结构。 获取符合条件的区间, 分别执行 higher(E), lower(E) 即可。

import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.NavigableSet;
import java.util.TreeSet;

import org.apache.commons.lang.ArrayUtils;

public class SortedSetTest {

	public static void main(String[] args) {
		NavigableSet<Temp> lifePriceTeamSet = new TreeSet<Temp>();
		lifePriceTeamSet.add(new Temp(3, "a"));
		lifePriceTeamSet.add(new Temp(1, "b"));
		lifePriceTeamSet.add(new Temp(5, "c"));
		lifePriceTeamSet.add(new Temp(4, "d"));
		lifePriceTeamSet.add(new Temp(9, "c"));
		lifePriceTeamSet.add(new Temp(2, "d"));

		Temp temp = lifePriceTeamSet.higher(new Temp(6, "g"));
		...

		System.out.println();

		temp = lifePriceTeamSet.lower(new Temp(6, "g"));
		...
	}

	static class Temp implements Comparable<Temp> {
		private int id;
		private String name;

		public Temp(int id, String name){
			this.id = id;
			this.name = name;
		}
		public int getId() {
			return id;
		}

		public void setId(int id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		@Override
		public String toString() {
			return "Temp [id=" + id + ", name=" + name + "]";
		}
		@Override
		public int compareTo(Temp o) {
			if (this.getId() > o.getId())
			{
				return -1;
			}
			else if (this.getId() == o.getId())
			{
				return 0;
			}
			else
			{
				return 1;
			}
		}
	}
}
时间: 2024-11-08 18:19:55

区域元素获取_NavigableSet的相关文章

css之子元素获取(未定义高度)父元素的高度

你可能碰到过这样的需求,一个高度不固定的区域(内容由用户创造),当鼠标经过该区域或者其神马操作时,需要出现一个与该区域一样大的模版: 我们用一个span来处理这个mask.由于 .sample-1 和 .sample-2 的高度是不确定的,也就是说我们没有对它们定义 height.如果父元素没有定义高度,子元素仍然可以通过 height:100% 的方式来得到父元素的实际高度. 除了IE6,几乎所有的主流浏览器都支持子元素获取父元素(未定义高度)的高度: 对于这个用户创造内容的区域,高度会在一个

JQuery元素获取

前言:这是本类别博文JQuery即用即查开篇. 因为查手册太麻烦,而且有时候需要深入命令所在详细页面才能了解此命令的具体作用是什么. 写这几篇文章就是为了,工作遇到问题时,一看这几篇文章就可以查到哪个命令的作用正好符合,然后自己再深入手册进行具体学习用法. 写的都是常用的一些,前提是你对jquery命令有一定了解,且有jquery手册. 第一篇:JQuery元素获取常见用法 1.利用标签名获取元素 $("标签名") 2.通过ID获取元素 $("#id_name")

Javascript基础简单汇总(一):元素获取

在页面脚本中,如果要对页面元素进行操作,那么我们就要获取到这个元素 那么在获取元素之前首先得要了解什么是DOM(document object  model) 在DOM,元素是以节点的形式表示的,每一个节点都是对象,我们平时写的特效也就是修改的节点对象的属性来的,这个就是传说中的DOM操作 而节点树其实也就是元素的父子级关系的树状图而已,所以啊,不要想的太复杂 这个元素节点了原生JS不能直接操作的,只能通过document这个文档对象再去获取 比如我要通过元素ID名获取元素: document.

Mat, IplImage, CvMat, Cvarr关系及元素获取

原文链接:http://blog.csdn.net/abcjennifer/article/details/17640195 因为之前查资料关于opencv几种坑爹类型CvMat, Mat, IplImage, Cvarr的详细讲解很多,但详细到多通道元素获取和涉及到类型转换的文章极少,还有更坑爹的一些误导文章,所以本文很简要地讲一下怎样获取这几种类型的元素,及其类型转换. 1.Mat, IplImage, CvMat, CvArr的关系: 1. opencv文档中明确声明,CvMat已经过时了

jQuery判断当前元素是第几个元素&amp;获取第N个元素

jQuery判断当前元素是第几个元素&获取第N个元素 假设有下面这样一段HTML代码: <ul> <li>jQuery判断当前元素是第几个元素示例</li> <li>jQuery获取第N个元素示例</li> <li>jQuery选择器示例</li> </ul> jQuery判断当前元素是第几个元素 如果我们点击任何一个li标签,想知道当前点击的是第几个li标签,可以使用下面的代码: $("ul

【PUPPETEER】元素获取(二)

一.涉及的知识点 如何使用css selector 常用元素获取 $ 元素选择 type (api 输入) click (api 点击) 二.学习网址 https://github.com/GoogleChrome/puppeteer/blob/v1.19.0/docs/api.md 三.环境 node js puppeteer 编辑器 vscode 四.实例 -- 常用元素选择器 选择器 示例 解释 id选择器 #id 选择匹配id的元素,仅存在一个 class选择器 .class 同时匹配多

BOM 窗体相关属性以及页面可见区域的获取方式

1 在IE Safari Oper Chrome 都提供了screenLeft和screenTop属性: screenLeft : 相对于屏幕左边的距离 screenTop : 相对于屏幕上边的距离 Firefox则在 screenX, screenY属性中提供形同的窗口位置信息,Safari,Chrome同样也支持这两个属性.Oper虽然支持但是两个属性表现不一致, 尽量避免在Oper中使用screenTop和screentLeft 兼容各种浏览器可以使用这种方式: var leftPos =

Jquery 第二课(jq:元素获取、添加、删除、过滤、判断、遍历、取值,样式设置、改变对象、切换、判断)

1.获取元素: 1).size(): 获取元素的个数. $(“img”).size():获取有多少个img. 2).eq():获取元素. $(“img[title]”).eq(1):获取第二个带有title属性的img标签. 也可以写作: $(“img[title]”)[1],此括号里的1代表索引1,所以是对应第二个,一般多用eq(). 3).get() :获得由选择器指定的DOM元素. x=$("p").get(0):获取第一个 p 元素的值. 4)index():获取某项标签的索引

js学习进阶-元素获取及样式设置

var imgs = document.querySelectorAll("article img"); 获得article元素的直接或间接子孙的所有img元素, <article> <img src = "..." /> <div> <img src = "..." /> </div> </article> 获取2个img元素. 另一个方法querySelector()只返