Добрый день, решил написать скрипт для ведения боя. Но т.к. с Delphi я знаком косвенно натолкнулся на кучу проблем. Мне необходимо класс, с 1 полем и несколькими методами. Код в JAVA
	Код:
	public class Table {
	HashMap<Integer, NPC> listNPC;
	public Table() {
		// Создаем объект хранящий класс NPC
		listNPC = new HashMap<Integer, NPC>();
	}
	/**
	 * Удаляем из списка NPC
	 */
	public void destroyNPC(int objectID) {
		listNPC.remove(objectID);
	}
	/**
	 * Возвращает ближайешло NPC
	 */
	public NPC getNearestNPC(int x, int y, int z) {
		NPC nearestNPC = null;
		int distantion = Integer.MAX_VALUE;
		for (Integer key : listNPC.keySet()) {
			int curDist = listNPC.get(key).getDistantion(x, y, z);
			if (curDist < distantion) {
				distantion = curDist;
				nearestNPC = listNPC.get(key);
			}
		}
		return nearestNPC;
	}
	/**
	 * Количестов наших NPC
	 */
	public int getCountNPC() {
		return listNPC.size();
	}
	/**
	 * Добавляем в список NPC
	 */
	public void addNPC(String buff) {
		NPC npc = new NPC(buff);
		listNPC.put(npc.id, npc);
	}
/**
 * 
 * Сам класс NPC
 *
 */
	public class NPC {
		//Поля
		int objectID;
		int id;
		int x;
		int y;
		int z;
		//Методы
		
		/**
		 * Конструктор, заполняет поля
		 */
		public NPC(String buff) {
			// Код
		}
		/**
		 * Метод возвращает дистанцию до текущего NPC
		 */
		public int getDistantion(int x, int y, int z) {
			// КОД
			return 0;
		}
	}
}
 Вопросы:
1) Есть ли в Delphi аналог HashMap.
2) Как если это будет плагин сделать его многопоточным, что бы он работал во всех запущенных соединениях
3) Можно ли в плагине хранить мои данные 
Если есть другие способы, буду рад их узнать.
Спасибо