146 147 @Override 148 public ArrayData set(final int index, final int value, final boolean strict) { 149 final long longIndex = ArrayIndex.toLongIndex(index); 150 if (longIndex < lo || longIndex > hi) { 151 return super.set(index, value, strict); 152 } else if (longIndex > lo && longIndex < hi) { 153 return getDeletedArrayFilter().set(index, value, strict); 154 } 155 if (longIndex == lo) { 156 lo++; 157 } else { 158 assert longIndex == hi; 159 hi--; 160 } 161 162 return isEmpty() ? getUnderlying().set(index, value, strict) : super.set(index, value, strict); 163 } 164 165 @Override 166 public ArrayData set(final int index, final long value, final boolean strict) { 167 final long longIndex = ArrayIndex.toLongIndex(index); 168 if (longIndex < lo || longIndex > hi) { 169 return super.set(index, value, strict); 170 } else if (longIndex > lo && longIndex < hi) { 171 return getDeletedArrayFilter().set(index, value, strict); 172 } 173 if (longIndex == lo) { 174 lo++; 175 } else { 176 assert longIndex == hi; 177 hi--; 178 } 179 180 return isEmpty() ? getUnderlying().set(index, value, strict) : super.set(index, value, strict); 181 } 182 183 @Override 184 public ArrayData set(final int index, final double value, final boolean strict) { 185 final long longIndex = ArrayIndex.toLongIndex(index); 186 if (longIndex < lo || longIndex > hi) { 187 return super.set(index, value, strict); 188 } else if (longIndex > lo && longIndex < hi) { 189 return getDeletedArrayFilter().set(index, value, strict); 190 } 191 if (longIndex == lo) { 192 lo++; 193 } else { 194 assert longIndex == hi; 195 hi--; 196 } 197 198 return isEmpty() ? getUnderlying().set(index, value, strict) : super.set(index, value, strict); 199 } 200 201 @Override 202 public boolean has(final int index) { 203 return super.has(index) && !isDeleted(index); | 146 147 @Override 148 public ArrayData set(final int index, final int value, final boolean strict) { 149 final long longIndex = ArrayIndex.toLongIndex(index); 150 if (longIndex < lo || longIndex > hi) { 151 return super.set(index, value, strict); 152 } else if (longIndex > lo && longIndex < hi) { 153 return getDeletedArrayFilter().set(index, value, strict); 154 } 155 if (longIndex == lo) { 156 lo++; 157 } else { 158 assert longIndex == hi; 159 hi--; 160 } 161 162 return isEmpty() ? getUnderlying().set(index, value, strict) : super.set(index, value, strict); 163 } 164 165 @Override 166 public ArrayData set(final int index, final double value, final boolean strict) { 167 final long longIndex = ArrayIndex.toLongIndex(index); 168 if (longIndex < lo || longIndex > hi) { 169 return super.set(index, value, strict); 170 } else if (longIndex > lo && longIndex < hi) { 171 return getDeletedArrayFilter().set(index, value, strict); 172 } 173 if (longIndex == lo) { 174 lo++; 175 } else { 176 assert longIndex == hi; 177 hi--; 178 } 179 180 return isEmpty() ? getUnderlying().set(index, value, strict) : super.set(index, value, strict); 181 } 182 183 @Override 184 public boolean has(final int index) { 185 return super.has(index) && !isDeleted(index); |