| 111 | abstract Object get(int index); |
| 112 | |
| 113 | @Override |
| 114 | public int hashCode() { |
| 115 | int hashCode = 1; |
| 116 | |
| 117 | for (int i = 0; i < size(); i++) { |
| 118 | final Object obj = get(i); |
| 119 | |
| 120 | if (obj == null) |
| 121 | hashCode = 31 * hashCode; |
| 122 | |
| 123 | // [#985] [#2045] Don't use obj.hashCode() on arrays, but avoid |
| 124 | // calculating it as byte[] (BLOBs) can be quite large |
| 125 | else if (obj.getClass().isArray()) |
| 126 | hashCode = 31 * hashCode; |
| 127 | else |
| 128 | hashCode = 31 * hashCode + obj.hashCode(); |
| 129 | } |
| 130 | |
| 131 | return hashCode; |
| 132 | } |
| 133 | |
| 134 | @Override |
| 135 | public boolean equals(Object obj) { |