public static void getCandidate2(HashMap<Integer, Pair> candidate,
			HashMap<Integer, Pair> not, Pair current) {

		int tmpdeg = 0;
		final HashSet<Integer> oneadj;
		oneadj = oneLeap.get(current.point);
		int curdeg = oneadj.size();
		current.cdeg = curdeg;
		HashSet<Integer> twoadj;

		HashSet<Integer>tmpadj;
		// 缓存未命中
		twoadj = new HashSet<Integer>();
		for (Integer i : oneadj) {// 一跳集
			tmpadj = oneLeap.get(i);
			twoadj.addAll(tmpadj);// 生成二跳集
			tmpdeg = tmpadj.size();
			if (tmpdeg > curdeg) {
				not.put(i, new Pair(i, 1));
			} else if (tmpdeg < curdeg) {
				candidate.put(i, new Pair(i, 1));
			} else {
				if (i > current.point) {
					candidate.put(i, new Pair(i, 1));
				} else
					// if (i < current) {//一跳集中不会有current本身
					not.put(i, new Pair(i, 1));
				// }// 相等的话即current本身,不需要加入任何集合,不处理
			}
		}
		twoadj.removeAll(oneadj);// 仅包含第二跳集
		twoadj.remove(current.point);
		for (Integer i : twoadj) {
			tmpdeg = oneLeap.get(i).size();
			if (tmpdeg > curdeg) {
				not.put(i, new Pair(i, 0));
			} else if (tmpdeg < curdeg) {
				candidate.put(i, new Pair(i, 0));
			} else {
				if (i > current.point) {
					candidate.put(i, new Pair(i, 0));
				} else
					// if (i < current) {//上面保证了二跳集中不会有current
					not.put(i, new Pair(i, 0));
			}
		}
	}