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

📄 ternarygeodata.java

📁 geotools的源码
💻 JAVA
字号:
package uk.ac.leeds.ccg.geotools;
import com.wallyflint.util.*;
import com.sun.java.util.collections.*; 

public class TernaryGeoData extends SimpleGeoData{
	TernarySearchTree tree = new TernarySearchTree();
	HashMap hash = new HashMap();

	public TernaryGeoData(){}
	public TernaryGeoData(GeoData d){
		java.util.Enumeration e = d.getIds();
		Vector v = new Vector();
		Integer I;
		int count =0;
		while(e.hasMoreElements()){
			I= (Integer)e.nextElement();
			v.addElement(I);
			if(count%1000==0&&count>900){
				Collections.shuffle(v);
				for(int i=0;i<v.size();i++){
					I= (Integer)v.elementAt(i);
					setText(I,d.getText(I.intValue()).trim());
				}
				v = new Vector(1000);
			}
		}
				
		Collections.shuffle(v);
		for(int i=0;i<v.size();i++){
			I= (Integer)v.elementAt(i);
			setText(I,d.getText(I.intValue()).trim());
		}
	}

	public String setText(Integer id,String s){
		tree.put(s,id);
		return (String)hash.put(id,s);
	}
	public String setText(int id,String s){
		Integer i = new Integer(id);
		tree.put(s,i);
		return (String)hash.put(i,s);
	}
	public String getText(int id){
		return (String)hash.get(new Integer(id));
	}
	public int getID(String s){
		Integer I = (Integer)tree.get(s);
		if(I==null)return -1;
		return I.intValue();
	}
	public Vector matchPrefix(String start){
		DoublyLinkedList d= tree.matchPrefix(start);
		Vector found = new Vector(d.size());
		DoublyLinkedList.DLLIterator n = d.iterator();
		while(n.hasNext()){
			String nout = (String)n.next();
			found.addElement(nout);
		}
		return found;

	}
	public Vector matchAlmost(String start){
		tree.setMatchAlmostDiff(1);
		DoublyLinkedList d1= tree.matchAlmost(start);
		tree.setMatchAlmostDiff(2);
		DoublyLinkedList d2= tree.matchAlmost(start);
		Vector found = new Vector(d1.size()+d2.size());
		DoublyLinkedList.DLLIterator n = d1.iterator();
		while(n.hasNext()){
			String nout = (String)n.next();
			found.addElement(nout);
		}
		DoublyLinkedList.DLLIterator n2= d2.iterator();
		while(n2.hasNext()){
			String nout = (String)n2.next();
			found.addElement(nout);
		}
		return found;


	}
}

⌨️ 快捷键说明

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