Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MyArrayList<T> {
- private int default_cap = 1000;
- private int cap = 0;
- private Object[] myMassive = {};
- public MyArrayList() {
- this.myMassive = new Object[default_cap];
- }
- public MyArrayList(int cap) {
- if (cap > 0) {
- this.myMassive = new Object[cap];
- this.cap = cap;
- } else if (cap == 0) {
- this.myMassive = new Object[this.default_cap];
- this.cap = default_cap;
- } else {
- throw new IllegalArgumentException("Illegal Capacity: "+ cap);
- }
- }
- public void add(T element){
- if(myMassive.length < cap){
- // Все нормуль, есть свободные элементы
- myMassive[myMassive.length+1] = element;
- }else{
- // Нет свободных мест, надо увеличивать массив
- if(myMassive.length+default_cap > Integer.MAX_VALUE) {
- Object[] tempMassive = new Object[Integer.MAX_VALUE];
- // копирнем элементы
- for(int i=0;i<=myMassive.length;i++){
- tempMassive[i] = myMassive[i];
- }
- // складываем новый элемент в следующую ячейку
- tempMassive[myMassive.length+1] = element;
- myMassive = tempMassive;
- }else{
- Object[] tempMassive = new Object[myMassive.length+default_cap];
- // копирнем элементы
- for(int i=0;i<=myMassive.length;i++){
- tempMassive[i] = myMassive[i];
- }
- // складываем новый элемент в следующую ячейку
- tempMassive[myMassive.length+1] = element;
- myMassive = tempMassive;
- }
- }
- }
- public T get(int index)
- {
- if(index < 0 || index > myMassive.length) {
- throw new IndexOutOfBoundsException("");
- }else
- {
- return (T) myMassive[index];
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement