• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java IdentityHashSet类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中kodkod.util.collections.IdentityHashSet的典型用法代码示例。如果您正苦于以下问题:Java IdentityHashSet类的具体用法?Java IdentityHashSet怎么用?Java IdentityHashSet使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



IdentityHashSet类属于kodkod.util.collections包,在下文中一共展示了IdentityHashSet类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: NodePruner

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Constructs a proof finder for the given log.
 * 
 * @ensures this.log' = log
 */
NodePruner(TranslationLog log) {
	visited = new IdentityHashSet<Node>();
	relevant = new IdentityHashSet<Node>();

	final RecordFilter filter = new RecordFilter() {
		public boolean accept(Node node, Formula translated, int literal, Map<Variable,TupleSet> env) {
			return env.isEmpty();
		}
	};

	constNodes = new LinkedHashMap<Formula,Boolean>();
	for (Iterator<TranslationRecord> itr = log.replay(filter); itr.hasNext();) {
		TranslationRecord rec = itr.next();
		int lit = rec.literal();
		if (Math.abs(lit) != Integer.MAX_VALUE) {
			constNodes.remove(rec.translated());
		} else if (lit == Integer.MAX_VALUE) {
			constNodes.put(rec.translated(), Boolean.TRUE);
		} else {
			constNodes.put(rec.translated(), Boolean.FALSE);
		}
	}
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:29,代码来源:TrivialProof.java


示例2: NodePruner

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Constructs a proof finder for the given log.
 * @ensures this.log' = log
 */
NodePruner(TranslationLog log) {
	visited = new IdentityHashSet<Node>();
	relevant = new IdentityHashSet<Node>();
				
	final RecordFilter filter = new RecordFilter() {
		public boolean accept(Node node, Formula translated, int literal, Map<Variable, TupleSet> env) {
			return env.isEmpty();
		}	
	};
	
	constNodes = new LinkedHashMap<Formula,Boolean>();
	for(Iterator<TranslationRecord> itr = log.replay(filter); itr.hasNext(); ) { 
		TranslationRecord rec = itr.next();
		int lit = rec.literal();
		if (Math.abs(lit) != Integer.MAX_VALUE) { 
			constNodes.remove(rec.translated());
		} else if (lit==Integer.MAX_VALUE) { 
			constNodes.put(rec.translated(), Boolean.TRUE);
		} else {
			constNodes.put(rec.translated(), Boolean.FALSE);
		}
	}
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:28,代码来源:TrivialProof.java


示例3: restoreJavaHeap

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
public void restoreJavaHeap() {
    ForgeScene forgeScene = fconv.forgeScene();
    for (GlobalVariable mod : modifiable) {
        ObjTupleSet fldVal = eval.evaluate(mod);
        IdentityHashSet<Object> visited = new IdentityHashSet<Object>();
        if (fldVal.isEmpty()) {
            restoreEmpty(mod);
            continue;
        }
        for (ObjTuple ot : fldVal.tuples()) {
            Object obj = ot.get(0);
            if (obj == null)
                continue;
            if (!visited.add(obj))
                continue;
            JField jf = getJFieldForVar(forgeScene, mod);
            FieldValue fv = new FieldValue(jf, mod.arity());
            ObjTupleSet objFldVal = ObjTupleSet.filter(fldVal, 0, obj);
            fv.addAllTuples(objFldVal);
            ObjSerFactory.factory.getSerForObj(obj).concrFunc(obj, fv);
        }
    }
}
 
开发者ID:aleksandarmilicevic,项目名称:squander,代码行数:24,代码来源:SquanderResult.java


示例4: printObj

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
private static void printObj(Object obj, StringBuilder sb, String indent, IdentityHashSet<Object> visited) {
        if (obj == null) {
            sb.append("null");
            return;
        }
        Class<? extends Object> cls = obj.getClass();
        if (cls == String.class || Utils.isPrimitive(cls)) {
            sb.append(obj.toString());
            return;
        }
        if (!visited.add(obj)) {
//            sb.append(obj.getClass().getName() + "@" + System.identityHashCode(obj));
            sb.append(obj.getClass().getName());
            return;
        }
//      sb.append(obj.getClass().getName() + "@" + System.identityHashCode(obj));
        sb.append(obj.getClass().getName());
        sb.append("\n");
        indent = indent + tab;
        for (Field f : getAllFields(cls)) {
            sb.append(indent).append(f.getName()).append(": ");
            printObj(getFieldValue(obj, f), sb, indent, visited);
            sb.append(";\n");
        }
    }
 
开发者ID:aleksandarmilicevic,项目名称:squander,代码行数:26,代码来源:ReflectionUtils.java


示例5: connectedCore

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Returns the connected core based on the given set of core variables.
 * 
 * @requires coreVar = StrategyUtils.coreVars(solver.proof());
 * @return let formulas = (this.log.records[int] & literal.{i: int | abs(i)
 *         in coreVars}).formula | connected = {f: formulas | some s: set
 *         coreNodes | f + this.log.formula in s and (s -
 *         this.log.formula).~components in s }
 */
private Set<Formula> connectedCore(final IntSet coreVars) {
	final Set<Formula> coreNodes = new IdentityHashSet<Formula>();
	final RecordFilter filter = new RecordFilter() {
		public boolean accept(Node node, Formula translated, int literal, Map<Variable,TupleSet> env) {
			return coreVars.contains(StrictMath.abs(literal));
		}
	};
	for (Iterator<TranslationRecord> itr = log().replay(filter); itr.hasNext();) {
		coreNodes.add(itr.next().translated());
	}
	final Set<Formula> connected = new IdentityHashSet<Formula>();
	final AbstractVoidVisitor traverser = new AbstractVoidVisitor() {
		final Set<Node> visited = new IdentityHashSet<Node>();

		/**
		 * Returns true if the given node has been visited before or if it
		 * is not contained in this.nodes set. Otherwise adds the node to
		 * the connected set and returns false.
		 * 
		 * @ensures this.visited' = this.visited + n
		 * @ensures n !in this.visited && n in coreNodes => connected' =
		 *          connected + n else connected' = connected
		 * @return n in visited || n !in coreNodes
		 */
		protected boolean visited(Node n) {
			if (visited.add(n) && coreNodes.contains(n)) {
				connected.add((Formula) n);
				return false;
			}
			return true;
		}
	};
	for (Formula root : log().roots()) {
		root.accept(traverser);
	}
	return connected;
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:47,代码来源:ResolutionBasedProof.java


示例6: minRoots

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Returns a minimal subset of {@linkplain #roots(Formula) roots} of the
 * given formula such that all nodes in the given collection are reachable
 * from those roots. The returned subset is a local minimum in that none of
 * its members can be removed without leaving some node in the descendants
 * set unreachable from the remaining roots.
 * 
 * @requires descendants in formula.*components
 * @return { s: Set<Formula> | s.elements in roots(formula) and descendants
 *         in s.elements.*components and no s': Set<Formula> |
 *         s.containsAll(s') and s'.size()<s.size() and descendants in
 *         s.elements.*components }
 * @throws IllegalArgumentException descendants !in formula.*components
 */
public static Set<Formula> minRoots(Formula formula, Collection< ? extends Node> descendants) {

	final Set<Node> desc = new IdentityHashSet<Node>(descendants);
	final VoidVisitor visitor = new AbstractVoidVisitor() {
		final Set<Node> visited = new IdentityHashSet<Node>();

		@Override
		protected boolean visited(Node n) {
			if (visited.add(n)) {
				desc.remove(n);
				return false;
			}
			return true;
		}
	};

	final Set<Formula> roots = new LinkedHashSet<Formula>();
	for (Formula root : roots(formula)) {
		final int size = desc.size();
		root.accept(visitor);
		if (desc.size() < size) {
			roots.add(root);
		}
		if (desc.isEmpty()) {
			break;
		}
	}

	if (!desc.isEmpty())
		throw new IllegalArgumentException(
				"descendants !in formula.*components: formula=" + formula + " ; descendants=" + descendants);

	return roots;
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:49,代码来源:Nodes.java


示例7: atomRelations

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
public final Set<Relation> atomRelations() {
	final Set<Relation> ans = new IdentityHashSet<Relation>();
	for (Relation r : relations())
		if (r.isAtom())
			ans.add(r);
	return ans;
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:8,代码来源:AnnotatedNode.java


示例8: skolemRelations

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
public final Set<Relation> skolemRelations() {
	final Set<Relation> ans = new IdentityHashSet<Relation>();
	for (Relation r : relations())
		if (r.isSkolem())
			ans.add(r);
	return ans;
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:8,代码来源:AnnotatedNode.java


示例9: sharedNodes

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Returns the shared internal nodes of this.node. This method should be
 * called only after this visitor has been applied to this.node.
 * 
 * @return {n: Node | #(n.~children & node.*children) > 1 }
 */
IdentityHashSet<Node> sharedNodes() {
	final IdentityHashSet<Node> shared = new IdentityHashSet<Node>(numSharedNodes);
	for (Map.Entry<Node,Boolean> entry : sharingStatus.entrySet()) {
		if (entry.getValue() == Boolean.TRUE)
			shared.add(entry.getKey());
	}
	return shared;
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:15,代码来源:AnnotatedNode.java


示例10: PredicateCollector

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Constructs a new collector.
 * 
 * @ensures this.negated' = false
 */
PredicateCollector(Set<Node> sharedNodes) {
	this.sharedNodes = sharedNodes;
	this.visited = new IdentityHashMap<Node,Boolean>();
	this.negated = false;
	preds = new EnumMap<RelationPredicate.Name,Set<RelationPredicate>>(RelationPredicate.Name.class);
	preds.put(ACYCLIC, new IdentityHashSet<RelationPredicate>(4));
	preds.put(TOTAL_ORDERING, new IdentityHashSet<RelationPredicate>(4));
	preds.put(FUNCTION, new IdentityHashSet<RelationPredicate>(8));
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:15,代码来源:AnnotatedNode.java


示例11: reduce

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
private Set<Node> reduce(Formula formula, int granularity) {
	solver.options().setCoreGranularity(granularity);
	final Solution sol = solver.solve(formula, bounds);
	assertEquals(Solution.Outcome.TRIVIALLY_UNSATISFIABLE, sol.outcome());
	sol.proof().minimize(null);
	return new IdentityHashSet<Node>(sol.proof().highLevelCore().values());

}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:9,代码来源:ReductionAndProofTest.java


示例12: core

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
private Set<Node> core(Formula formula, int granularity) {
	solver.options().setCoreGranularity(granularity);
	final Solution sol = solver.solve(formula, bounds);
	assertEquals(Solution.Outcome.UNSATISFIABLE, sol.outcome());
	sol.proof().minimize(new NCEStrategy(sol.proof().log()));
	return new IdentityHashSet<Node>(sol.proof().highLevelCore().values());

}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:9,代码来源:ReductionAndProofTest.java


示例13: connectedCore

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Returns the connected core based on the given set of 
 * core variables.  
 * @requires coreVar = StrategyUtils.coreVars(solver.proof());
 * @return let formulas = (this.log.records[int] & literal.{i: int | abs(i) in coreVars}).formula |
 *  	   connected = {f: formulas  | some s: set coreNodes | f + this.log.formula in s and (s - this.log.formula).~components in s } 
 */
private Set<Formula>  connectedCore(final IntSet coreVars) {
	final Set<Formula> coreNodes = new IdentityHashSet<Formula>();
	final RecordFilter filter = new RecordFilter() {
		public boolean accept(Node node, Formula translated, int literal, Map<Variable,TupleSet> env) {
			return coreVars.contains(StrictMath.abs(literal));
		}
	};
	for(Iterator<TranslationRecord> itr = log().replay(filter); itr.hasNext(); ) {
		coreNodes.add(itr.next().translated());
	}
	final Set<Formula> connected = new IdentityHashSet<Formula>();
	final AbstractVoidVisitor traverser = new AbstractVoidVisitor() {
		final Set<Node> visited = new IdentityHashSet<Node>();
		/**
		 * Returns true if the given node has been visited before or if 
		 * it is not contained in this.nodes set.  Otherwise adds 
		 * the node to the connected set and returns false.
		 * @ensures this.visited' = this.visited + n
		 * @ensures n !in this.visited && n in coreNodes => 
		 *  connected' = connected + n else connected' = connected
		 * @return n in visited || n !in coreNodes
		 */
		protected boolean visited(Node n) {
			if (visited.add(n) && coreNodes.contains(n)) {
				connected.add((Formula)n);
				return false;
			}
			return true;
		}
	};
	for(Formula root: log().roots()) {
		root.accept(traverser);
	}
	return connected;
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:43,代码来源:ResolutionBasedProof.java


示例14: minRoots

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Returns a minimal subset of {@linkplain #roots(Formula) roots} of the given formula such that all nodes in the given collection
 * are reachable from those roots.  The returned subset is a local minimum in that none of its members can be removed without leaving
 * some node in the descendants set unreachable from the remaining roots.
 * @requires descendants in formula.*components
 * @return { s: Set<Formula> | s.elements in roots(formula) and descendants in s.elements.*components and 
 * 				no s': Set<Formula> | s.containsAll(s') and s'.size()<s.size() and descendants in s.elements.*components }
 * @throws IllegalArgumentException - descendants !in formula.*components
 */
public static Set<Formula> minRoots(Formula formula, Collection<? extends Node> descendants) { 
	
	final Set<Node> desc = new IdentityHashSet<Node>(descendants);
	final VoidVisitor visitor = new AbstractVoidVisitor() {
		final Set<Node> visited = new IdentityHashSet<Node>();
		@Override
		protected boolean visited(Node n) {
			if (visited.add(n)) {
				desc.remove(n);
				return false;
			}
			return true;
		}
	};
	
	final Set<Formula> roots = new LinkedHashSet<Formula>();
	for(Formula root : roots(formula)) { 
		final int size = desc.size();
		root.accept(visitor);
		if (desc.size()<size) { roots.add(root); }
		if (desc.isEmpty()) { break; }
	}
	
	if (!desc.isEmpty()) 
		throw new IllegalArgumentException("descendants !in formula.*components: formula="+formula+" ; descendants="+descendants);
	
	return roots;
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:38,代码来源:Nodes.java


示例15: sharedNodes

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Returns the shared internal nodes of this.node.  This method should
 * be called only after this visitor has been applied to this.node.
 * @return {n: Node | #(n.~children & node.*children) > 1 }
 */
IdentityHashSet<Node> sharedNodes() {
	final IdentityHashSet<Node> shared = new IdentityHashSet<Node>(numSharedNodes);
	for(Map.Entry<Node,Boolean> entry : sharingStatus.entrySet()) {
		if (entry.getValue()==Boolean.TRUE)
			shared.add(entry.getKey());
	}
	return shared;
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:14,代码来源:AnnotatedNode.java


示例16: PredicateCollector

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Constructs a new collector.
 * @ensures this.negated' = false
 */
PredicateCollector(Set<Node> sharedNodes) {
	this.sharedNodes = sharedNodes;
	this.visited = new IdentityHashMap<Node,Boolean>();
	this.negated = false;
	preds = new EnumMap<RelationPredicate.Name, Set<RelationPredicate>>(RelationPredicate.Name.class);	
	preds.put(ACYCLIC, new IdentityHashSet<RelationPredicate>(4));
	preds.put(TOTAL_ORDERING, new IdentityHashSet<RelationPredicate>(4));
	preds.put(FUNCTION, new IdentityHashSet<RelationPredicate>(8));
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:14,代码来源:AnnotatedNode.java


示例17: minRoots

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
/**
 * Returns a minimal subset of {@linkplain #roots(Formula) roots} of the given formula such that all nodes in the given collection
 * are reachable from those roots.  The returned subset is a local minimum in that none of its members can be removed without leaving
 * some node in the descendants set unreachable from the remaining roots.
 * @requires descendants in formula.*components
 * @return { s: Set<Formula> | s.elements in roots(formula) and descendants in s.elements.*components and 
 * 				no s': Set<Formula> | s.containsAll(s') and s'.size()<s.size() and descendants in s.elements.*components }
 * @throws IllegalArgumentException  descendants !in formula.*components
 */
public static Set<Formula> minRoots(Formula formula, Collection<? extends Node> descendants) { 
	
	final Set<Node> desc = new IdentityHashSet<Node>(descendants);
	final VoidVisitor visitor = new AbstractVoidVisitor() {
		final Set<Node> visited = new IdentityHashSet<Node>();
		@Override
		protected boolean visited(Node n) {
			if (visited.add(n)) {
				desc.remove(n);
				return false;
			}
			return true;
		}
	};
	
	final Set<Formula> roots = new LinkedHashSet<Formula>();
	for(Formula root : roots(formula)) { 
		final int size = desc.size();
		root.accept(visitor);
		if (desc.size()<size) { roots.add(root); }
		if (desc.isEmpty()) { break; }
	}
	
	if (!desc.isEmpty()) 
		throw new IllegalArgumentException("descendants !in formula.*components: formula="+formula+" ; descendants="+descendants);
	
	return roots;
}
 
开发者ID:emina,项目名称:kodkod,代码行数:38,代码来源:Nodes.java


示例18: reduce

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
private Set<Node> reduce(Formula formula, int granularity) {
	solver.options().setCoreGranularity(granularity);
	final Solution sol = solver.solve(formula, bounds);
	assertEquals(Solution.Outcome.TRIVIALLY_UNSATISFIABLE, sol.outcome());
	sol.proof().minimize(null);
	return new IdentityHashSet<Node>(sol.proof().highLevelCore().values());
	
}
 
开发者ID:emina,项目名称:kodkod,代码行数:9,代码来源:ReductionAndProofTest.java


示例19: core

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
private Set<Node> core(Formula formula, int granularity) {
	solver.options().setCoreGranularity(granularity);
	final Solution sol = solver.solve(formula, bounds);
	assertEquals(Solution.Outcome.UNSATISFIABLE, sol.outcome());
	sol.proof().minimize(new NCEStrategy(sol.proof().log()));
	return new IdentityHashSet<Node>(sol.proof().highLevelCore().values());
	
}
 
开发者ID:emina,项目名称:kodkod,代码行数:9,代码来源:ReductionAndProofTest.java


示例20: myObjectsForClass

import kodkod.util.collections.IdentityHashSet; //导入依赖的package包/类
private Set<Object> myObjectsForClass(Class<?> cls)   {
    Set<Object> ret = world.get(cls);
    if (ret == null) {
        ret = new IdentityHashSet<Object>();
        world.put(cls, ret); 
    }
    return ret;
}
 
开发者ID:aleksandarmilicevic,项目名称:squander,代码行数:9,代码来源:Heap2Bounds.java



注:本文中的kodkod.util.collections.IdentityHashSet类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java FileUtils类代码示例发布时间:2022-05-22
下一篇:
Java Polynomial类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap