⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 item.java

📁 Shamir秘密分享算法的java实现
💻 JAVA
字号:
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

public class Item {

	// Integer 指数 BigDecimal 系数
	Map<Integer, BigDecimal> itemMap = new TreeMap<Integer, BigDecimal>(
			new ItemComparator());

	/**
	 * 
	 */
	private static final long serialVersionUID = -5742467143562230421L;

	public Item() {

	}

	public boolean containKey(int key) {
		if (itemMap.containsKey(new Integer(key)))
			return true;
		else
			return false;
	}

	public BigDecimal getValue(Integer key) {
		if (itemMap.containsKey(key)) {
			return itemMap.get(key);
		} else
			return new BigDecimal(0);
	}

	public BigDecimal getValue(int key) {
		if (containKey(key))
			return itemMap.get(new Integer(key));
		else
			return new BigDecimal(0);
	}

	public void put(int key, BigDecimal value) {		
		itemMap.put(new Integer(key), value);
	}

	public void put(Integer key, BigDecimal value) {
		itemMap.put(key, value);
	}

	public void clear() {
		itemMap.clear();
	}

	public void putAll(Map map) {
		itemMap.putAll(map);
	}

	public Map getMap() {
		return itemMap;
	}

	public Iterator keyIterator() {
		return itemMap.keySet().iterator();
	}

	public String toString() {
		String result = "";
		Integer intKey;
		Iterator iter = itemMap.keySet().iterator();
		while (iter.hasNext()) {
			intKey = (Integer) iter.next();
			if ((itemMap.get(intKey)).doubleValue() != 0) {
				result += "+";

				if (intKey.intValue() != 0)
					result += (itemMap.get(intKey)).toString() + "x^"
							+ intKey.toString();
				else
					result += (itemMap.get(intKey)).toString();
			}
		}
		if (result.substring(0, 1).equals("+"))
			result = result.substring(1);
		return result;
	}

	public BigDecimal getCalValue(BigInteger x) {
		BigDecimal result = new BigDecimal(0);
		Integer intKey;
		Iterator iter = itemMap.keySet().iterator();
		while (iter.hasNext()) {
			intKey = (Integer) iter.next();

			result = result.add((itemMap.get(intKey)).multiply(new BigDecimal(x
					.pow(intKey.intValue()))));
		}

		return result;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -