Awt's Dimension class может делать много вещей, конвертируя между различными числовыми типами и т. Д. Я использую эти классы для представления ячеек в больших 2-х миров, которые необходимо обновлять за миллисекунду. Могу ли я получить удар производительности, если я все время придерживаюсь класса Dimension, вместо того, чтобы использовать свой собственный класс Pair? Это мой пользовательский класс Pair:Awt Dimension class vs custom Pair class performance
public class Pair<A, B> {
private A first;
private B second;
public Pair(A first, B second) {
super();
this.first = first;
this.second = second;
}
public static <A, B> Pair <A, B> createPair(A first, B second) {
return new Pair<A, B>(first, second);
}
@Override
public int hashCode() {
int hashFirst = first != null ? first.hashCode() : 0;
int hashSecond = second != null ? second.hashCode() : 0;
return (hashFirst + hashSecond) * hashSecond + hashFirst;
}
@Override
public boolean equals(Object other) {
if (other instanceof Pair) {
Pair otherPair = (Pair) other;
return
(( this.first == otherPair.first ||
(this.first != null && otherPair.first != null &&
this.first.equals(otherPair.first))) &&
( this.second == otherPair.second ||
(this.second != null && otherPair.second != null &&
this.second.equals(otherPair.second))));
}
return false;
}
@Override
public String toString()
{
return "(" + first + ", " + second + ")";
}
public A getX() {
return first;
}
public B getY() {
return second;
}
}
Когда я искал реализаций Pair я не видел упоминания измерения в любом месте, интересно, почему ..
Представление ячеек - это 2-й массив, мне нужно только работать с целыми числами, тогда выигрывает размер? –
Хотя я вижу свое невежество, кому я определяю парное общее, если я хочу использовать его только с целыми числами? Теперь я понимаю, что не должен был, если бы я делал это конкретным для целых чисел, по производительности он будет таким же, как и измерение, верно? –
@RyanMarv да с точки зрения производительности не должно быть никакой разницы. Если вам нужны целые позиции, используйте только «java.awt.Point» или используйте более выразительное имя, чем «Пара» :) – Thomas