码迷,mamicode.com
首页 > 其他好文 > 详细

区域元素获取_NavigableSet

时间:2015-11-18 18:15:33      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:区域元素获取_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;
			}
		}
	}
}


本文出自 “囊中羞涩” 博客,请务必保留此出处http://coffe.blog.51cto.com/6241892/1714007

区域元素获取_NavigableSet

标签:区域元素获取_navigableset

原文地址:http://coffe.blog.51cto.com/6241892/1714007

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!