-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Т.к массиватор листа теперь детектится фт сливаю вам свой selfcode solution для бомпаса отхода под вонтам
Java:
package fimozvm.collections;
import java.util.*;
public class ObjectArraySet<K> extends AbstractSet<K> implements Set<K>, java.io.Serializable {
private static final long serialVersionUID = 1L;
private transient K[] a;
private int size;
@SuppressWarnings("unchecked")
public ObjectArraySet(int capacity) {
a = (K[]) new Object[capacity];
}
public ObjectArraySet() {
this(16);
}
public ObjectArraySet(Collection<? extends K> c) {
this(c.size());
addAll(c);
}
@Override
public boolean add(K k) {
if (contains(k)) return false;
if (size == a.length) grow(size + 1);
a[size++] = k;
return true;
}
@Override
public boolean contains(Object k) {
for (int i = 0; i < size; i++)
if (Objects.equals(a[i], k)) return true;
return false;
}
@Override
public boolean remove(Object k) {
int index = indexOf(k);
if (index == -1) return false;
removeAt(index);
return true;
}
private int indexOf(Object k) {
for (int i = 0; i < size; i++)
if (Objects.equals(a[i], k)) return i;
return -1;
}
private void removeAt(int index) {
size--;
if (index != size) System.arraycopy(a, index + 1, a, index, size - index);
a[size] = null;
}
@Override
public void clear() {
Arrays.fill(a, 0, size, null);
size = 0;
}
@Override
public int size() {
return size;
}
@Override
public Object[] toArray() {
return Arrays.copyOf(a, size);
}
@SuppressWarnings("unchecked")
@Override
public <T> T[] toArray(T[] array) {
if (array.length < size)
return (T[]) Arrays.copyOf(a, size, array.getClass());
System.arraycopy(a, 0, array, 0, size);
if (array.length > size)
array[size] = null;
return array;
}
private void grow(int minCapacity) {
int newCapacity = Math.max(minCapacity, (int)(a.length * 1.5));
a = Arrays.copyOf(a, newCapacity);
}
@Override
public Iterator<K> iterator() {
return new Iterator<K>() {
int pos = 0;
int lastReturned = -1;
@Override
public boolean hasNext() {
return pos < size;
}
@Override
public K next() {
if (!hasNext()) throw new NoSuchElementException();
lastReturned = pos;
return a[pos++];
}
@Override
public void remove() {
if (lastReturned == -1) throw new IllegalStateException();
removeAt(lastReturned);
pos = lastReturned;
lastReturned = -1;
}
};
}
}