溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

區域元素獲取_NavigableSet

發布時間:2020-06-13 11:11:13 來源:網絡 閱讀:627 作者:WangXP_ 欄目:開發技術

  很多時候我們都需要對問題結果進行策略性整理方可符合要求;常見排行,有序等等。

  這邊有個問題是試圖從一堆數據中找到符合條件的前后 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;
			}
		}
	}
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女