@Override
	public boolean equals(Object o2) {
		
		if(o2 == null || o2.getClass() != getClass()) {
			return false;
		} else {
			SubGraphFeature s2 = (SubGraphFeature) o2;
			Iterator<Integer> i1 = nodeList.iterator();
			Iterator<Integer> i2 = s2.nodeList.iterator();
			
			while(i1.hasNext() && i2.hasNext()) {
				int re = i1.next().intValue(), re2 = i2.next().intValue();
				if(re != re2) {
					return false;
				}
			}
			
			if(i1.hasNext() || i2.hasNext()) 
				return false;
			
		}
		
		return true;
	}