Вопрос о Class и Map - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > Java

Java В данном форуме вы сможете найти много полезной информации по платформе Java. Подробные статьи, исходные коды и конечно учебники как для новичков так и профессиональных Java разработчиков вы найдёте здесь. Если у вас есть вопрос или хотите поделится своими наработками, пожалуйста, делайте это в этой теме.

Ответ
Опции темы
Непрочитано 29.06.2014, 17:58   #1
Пользователь

Автор темы (Топик Стартер) Вопрос о Class и Map

Появилась необходимость сделать в Map 2 параметра Class.
ZoneAllCoords:
Свернуть ↑Развернуть ↓

ZoneCoords:
Свернуть ↑Развернуть ↓

Код:
private final static Map<ZoneAllCoords, ZoneCoords> Zone_Coords = new ConcurrentHashMap<ZoneAllCoords, ZoneCoords>();

Заполнение идет так:
Код:
Zone_Coords.put(new ZoneAllCoords(1,1), new ZoneCoords(x,y,z));
Zone_Coords.put(new ZoneAllCoords(1,2), new ZoneCoords(x,y,z));
Теперь мне надо через get взять эти параметры x,y,z.
Код:
ZoneCoords zc = Zone_Coords.get(new ZoneAllCoords(1,1));
и соответственно
Код:
System.out.println("##x = "+zc.x+"; y = "+zc.y+"; z = "+zc.z);
Не работает.

Возможно ли как-то достать эти параметры через класс?
Точнее - как достать эти параметры, что нужно передавать в get()?

P.S Подсказали как по другому можно сделать. Но всё равно интересует, возможно ли это сделать.
Main вне форума Ответить с цитированием
Непрочитано 29.06.2014, 18:23   #2
Аватар для Donatte
Герой

По умолчанию Re: Вопрос о Class и Map

Код:
Свернуть ↑Развернуть ↓


Адресация: ZoneCoords.getX(), ZoneCoords.getY(), ZoneCoords.getZ()
Donatte вне форума Ответить с цитированием
Непрочитано 29.06.2014, 18:26   #3
Пользователь

Автор темы (Топик Стартер) Re: Вопрос о Class и Map

Цитата:
Сообщение от Donatte Посмотреть сообщение
Код:
Свернуть ↑Развернуть ↓
С ZoneCoords всё в порядке.
Main вне форума Ответить с цитированием
Непрочитано 29.06.2014, 18:43   #4
Аватар для VISTALL
Illussion is real

По умолчанию Re: Вопрос о Class и Map

Определите в ZoneAllCoords два метода

equals
hashCode

суть в том, для Мапы - ваши обьекты разные

Добавлено через 1 минуту
Вот пример того
http://stackoverflow.com/questions/2...shcode-in-java
__________________
consulo.io - Consulo - multi-language IDE

Последний раз редактировалось VISTALL; 29.06.2014 в 18:44. Причина: Добавлено сообщение
VISTALL вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 29.06.2014, 18:56   #5
Аватар для L2CCCP

По умолчанию Re: Вопрос о Class и Map

 
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
 
public class MapZone
{
	private final static Map<Zone, ZoneCoords> cord_map = new ConcurrentHashMap<Zone, ZoneCoords>();
 
	public static void main(String[] args)
	{
		create(new Zone(1, 1), new ZoneCoords(245, 727, 5424));
		create(new Zone(1, 2), new ZoneCoords(340, 432, 1234));
 
		Zone zone_1 = getZone(1, 1);
		ZoneCoords cord_1 = cord_map.get(zone_1);
		System.out.println("##x = " + cord_1.x + "; y = " + cord_1.y + "; z = " + cord_1.z);
 
		Zone zone_2 = getZone(1, 2);
		ZoneCoords cord_2 = cord_map.get(zone_2);
		System.out.println("##x = " + cord_2.x + "; y = " + cord_2.y + "; z = " + cord_2.z);
	}
 
	private static Zone getZone(int id, int number)
	{
		for(Zone zone : cord_map.keySet())
		{
			if(zone.zone == id && zone.number == number)
				return zone;
		}
		return null;
	}
 
	private static void create(Zone zone, ZoneCoords coords)
	{
		cord_map.put(zone, coords);
	}
 
	static class Zone
	{
		public int zone;
		public int number;
 
		Zone(int zone, int number)
		{
			this.zone = zone;
			this.number = number;
		}
	}
 
	static class ZoneCoords
	{
		public int x;
		public int y;
		public int z;
 
		ZoneCoords(int x, int y, int z)
		{
			this.x = x;
			this.y = y;
			this.z = z;
		}
	}
 
}
 
Code: Java
Можно и так
L2CCCP вне форума Отправить сообщение для L2CCCP с помощью ICQ Отправить сообщение для L2CCCP с помощью MSN Отправить сообщение для L2CCCP с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 30.06.2014, 16:36   #6
Аватар для KID
Пользователь

По умолчанию Re: Вопрос о Class и Map

ребята, вы упороты
создавать новый класс ради значения в таблице
ладно бы там был ключ нечто вроде String.format("%d-%d", x, y), но такоеее
рекомендую вот это guava's HashBasedTable

зы. Donatte - вам вообще не стоит заниматься помощью
KID вне форума Отправить сообщение для KID с помощью Skype™ Ответить с цитированием
Непрочитано 30.06.2014, 16:59   #7
Аватар для Donatte
Герой

По умолчанию Re: Вопрос о Class и Map

Цитата:
Сообщение от KID Посмотреть сообщение
ребята, вы упороты
создавать новый класс ради значения в таблице
ладно бы там был ключ нечто вроде String.format("%d-%d", x, y), но такоеее
рекомендую вот это guava's HashBasedTable

зы. Donatte - вам вообще не стоит заниматься помощью
А кто сказал, что я помогаю?
Donatte вне форума Ответить с цитированием
Непрочитано 30.06.2014, 17:41   #8
Аватар для KID
Пользователь

По умолчанию Re: Вопрос о Class и Map

Цитата:
Сообщение от Donatte Посмотреть сообщение
А кто сказал, что я помогаю?
не знаю кто сказал, ваш текст совершенно ниочем - вас бы наказать по правилам форума
KID вне форума Отправить сообщение для KID с помощью Skype™ Ответить с цитированием
Непрочитано 30.06.2014, 18:48   #9
Аватар для Donatte
Герой

По умолчанию Re: Вопрос о Class и Map

Цитата:
Сообщение от KID Посмотреть сообщение
не знаю кто сказал, ваш текст совершенно ниочем - вас бы наказать по правилам форума
Я не виноват, что человек изобретает семиколёсный велосипед. Придумывать мапы с двумя объектами один из которых как индефикатор, в случаях когда это не требуется, я вас умоляю.

А вы ему ещё, "нака друг подстегни к своему говнокоду гугловскую либу". И потом у анонимусов глаза на лоб лезут от количества подстёгнутых левых библиотек к 2 классам с 10-ю методами.

Оптимальным для него было бы создать класс ZoneCoords с (number, x, y, z) и использовать Map<Integer, List<ZoneCoords>>.

Но как говориться, каждый дрочит как он хочет.

Удачи!
Donatte вне форума Ответить с цитированием
Непрочитано 30.06.2014, 22:03   #10
Аватар для L2CCCP

По умолчанию Re: Вопрос о Class и Map

Donatte, думаю кид имел в виду то, что Вы отписали совет ввести инкапсуляцию, но суть проблемы была не в этом.
L2CCCP вне форума Отправить сообщение для L2CCCP с помощью ICQ Отправить сообщение для L2CCCP с помощью MSN Отправить сообщение для L2CCCP с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляция сборки Indev tymboss Lineage II 22 30.04.2010 03:39
Хелп tymboss Lineage II 2 15.03.2010 18:11
Адаптируем SQL BimBom Работа со скриптами 9 14.10.2009 15:14


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 07:29. Часовой пояс GMT +3.

Вверх