선형 표 배열 구현
4511 단어 데이터 구조
/**
* ,
* @author yuli
*
*/
public class MyArrayList<T> {
private static final int DEFAULT_CAPACITY = 10;//
private int size;
private Object[] items;
public MyArrayList() {
clean();
}
public void clean(){
this.size=0;
swap(DEFAULT_CAPACITY);
}
public int size(){
return size;
}
/**
*
* @param t
* @param index
* @return
*/
public T set(T t,int index){
if(index < 0 || index > size){
throw new ArrayIndexOutOfBoundsException(index);
}
@SuppressWarnings("unchecked")
T old = (T) items[index];
items[index] = t;
return old;
}
/**
*
* @param index
* @return
*/
@SuppressWarnings("unchecked")
public T get(int index){
if(index < 0 || index> size){
throw new ArrayIndexOutOfBoundsException(index);
}
return (T) items[index];
}
/**
*
* @param t
*/
public void add(T t){
if(size == items.length){
swap(size * 2 + 1);
}
items[size++] = t;
}
/**
*
* @param t
* @param index
*/
public void add(T t,int index){
if(index < 0 || index> size){
throw new ArrayIndexOutOfBoundsException(index);
}
// ,
if(size == items.length){
swap(size * 2 + 1);
}
for(int i = size ;i > index;i++){
items[i] = items[i-1];
}
items[index] = t;
size++;
}
/**
*
**
@SuppressWarnings("unchecked")
public T remove(int index){
if(index < 0 || index> size){
throw new ArrayIndexOutOfBoundsException(index);
}
Object item = items[index];
for(int i = index;i@param newSize
*/
public void swap(int newSize){
if(newSize < size){
return;
}
Object[] newItems = new Object[newSize];
for(int i=0;i<this.size;i++){
newItems[i]=items[i];
}
this.items = newItems;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.