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));
				}
			}
		}