public void reorderIntegerKeys() {
		List<Object> keys = getOrderedKeys();
		int numKeys = keys.size();
		if (numKeys <= 0)
			return;

		if (!(getOrderedKey(0) instanceof Integer))
			return;

		List<Object> newKeys = new ArrayList<Object>();
		List<Object> newValues = new ArrayList<Object>();

		for (int i = 0; i < numKeys; i++) {
			Integer key = (Integer) getOrderedKey(i);
			Object val = getOrderedValue(i);
			int numNew = newKeys.size();
			int pos = 0;
			for (int j = 0; j < numNew; j++) {
				Integer newKey = (Integer) newKeys.get(j);
				if (newKey.intValue() < key.intValue())
					++pos;
				else
					break;
			}
			if (pos >= numKeys) {
				newKeys.add(key);
				newValues.add(val);
			} else {
				newKeys.add(pos, key);
				newValues.add(pos, val);
			}
		}
		this.clear();
		for (int l = 0; l < numKeys; l++) {
			put(newKeys.get(l), newValues.get(l));
		}
	}