• ArrayList类的实现


    package other;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.NoSuchElementException;
    
    /*
     * ArrayList泛型类的实现
     */
    public class MyArrayList<AnyType> implements Iterable<AnyType> {
    
    	private static final int DEFAULT_CAPACITY = 10;
    
    	private int theSize;
    	private AnyType[] theItems;
    
    	public MyArrayList() {
    		clear();
    	}
    
    	public void clear() {
    		theSize = 0;
    		ensureCapacity(DEFAULT_CAPACITY);
    	}
    
    	private int size() {
    		return theSize;
    	}
    
    	public boolean isEmpty() {
    		return size() == 0;
    	}
    
    	public void trimToSize() {
    		ensureCapacity(size());
    	}
    
    	public AnyType get(int index) {
    		if (index < 0 || index >= size()) {
    			throw new ArrayIndexOutOfBoundsException();
    		}
    		return theItems[index];
    	}
    
    	private AnyType set(int index, AnyType newVal) {
    		if (index < 0 || index >= size()) {
    			throw new ArrayIndexOutOfBoundsException();
    		}
    		AnyType old = theItems[index];
    		theItems[index] = newVal;
    		return old;
    	}
    
    	public void ensureCapacity(int newCapacity) {
    		if (newCapacity < theSize) {
    			return;
    		}
    
    		AnyType[] old = theItems;
    		theItems = (AnyType[]) new Object[newCapacity];
    		for (int i = 0; i < size(); i++) {
    			theItems[i] = old[i];
    		}
    	}
    
    	public void add(int index, AnyType x) {
    		if (theItems.length == size()) {
    			ensureCapacity(size() * 2 + 1);
    		}
    		for (int i = theSize; i < index; i--) {
    			theItems[i] = theItems[i - 1];
    		}
    		theItems[index] = x;
    
    		theSize++;
    	}
    
    	public boolean add(AnyType x) {
    		add(size(), x);
    		return true;
    	}
    
    	public AnyType remove(int index) {
    		AnyType removedItem = theItems[index];
    		for (int i = index; i < size() - 1; i++) {
    			theItems[i] = theItems[i + 1];
    		}
    		theSize--;
    		return removedItem;
    	}
    
    	public Iterator<AnyType> iterator() {
    
    		return new ArrayListIterator();
    	}
    
    	private class ArrayListIterator implements Iterator<AnyType> {
    
    		private int current = 0;
    
    		public boolean hasNext() {
    
    			return current < size();
    		}
    
    		public AnyType next() {
    
    			if (!hasNext()) {
    				throw new NoSuchElementException();
    			}
    			return theItems[current++];
    		}
    
    		public void remove() {
    			MyArrayList.this.remove(--current);
    		}
    
    	}
    
    }
    
  • 相关阅读:
    iframe与动作连处理
    selenium其他自动化操作
    使用seleniun模拟登陆qq空间
    selenium基本使用
    验证码识别 云打码之古诗文网验证识别
    图片爬取基础
    centos8下LAMP搭建Nextcloud
    浅谈centos8与centos7
    DHCP服务器配置及测试
    使用Apache服务器实现Nginx反向代理
  • 原文地址:https://www.cnblogs.com/yoyohong/p/5651808.html
Copyright © 2020-2023  润新知