[데이터 구조] [2] 배열 이 실현 하 는 선형 표 (선형 표 의 순서 저장 구조)
배열 을 통 해 간단 한 선형 표를 실현 하 였 다.
기능:
public class ArrayListTest {
private Object[] elements;//
private static final Object[] EMPTY_ARRAY = {};//
/**
*
*/
public ArrayListTest(){
this.elements = EMPTY_ARRAY;
}
/**
*
*/
public void add(Object element){
// ,
Object[] newArr = new Object[elements.length + 1];
//
for(int i = 0; i< elements.length; i++){
newArr[i] = elements[i];
}
//
newArr[elements.length] = element;
//
this.elements = newArr;
}
/**
*
*/
public void insert(int index, Object element){
//
if(index < 0 || index >= elements.length){
throw new RuntimeException(" ");
}
// ,
Object[] newArr = new Object[elements.length + 1];
//
for(int i = 0; i< newArr.length; i++){
if(i < index){
//index
newArr[i] = elements[i];
}else if(index == i){
//index element
newArr[i] = element;
}else{
//index -1
newArr[i] = elements[i - 1];
}
}
//
this.elements = newArr;
}
/**
*
*/
public Object get(int index){
//
if(index < 0 || index >= elements.length){
throw new RuntimeException(" ");
}
return elements[index];
}
/**
*
*/
public void delete(int index){
//
if(index < 0 || index >= elements.length){
throw new RuntimeException(" ");
}
// ,
Object[] newArr = new Object[elements.length - 1];
//
for(int i = 0; i< newArr.length; i++){
if(i < index){
//index
newArr[i] = elements[i];
}else{
// index
newArr[i] = elements[i + 1];
}
}
//
elements = newArr;
}
/**
*
*/
public void deleteElement(Object object){
Integer index = null;
// object
for(int i = 0; i< elements.length; i++){
if(object.equals(elements[i])){
index = i;
break;
}
}
if(index != null){
delete(index);
}else{
System.out.println(" ");
}
}
/**
*
*/
public int size(){
return elements.length;
}
/**
*
*/
public boolean isEmpty(){
return elements.length == 0;
}
/**
*
*/
public void show(ArrayListTest arrayTest){
System.out.println(Arrays.toString(arrayTest.elements));
}
public static void main(String[] args) {
ArrayListTest arrays = new ArrayListTest();
arrays.add(1);
arrays.add(2);
arrays.add(3);
arrays.show(arrays);//[1, 2, 3]
arrays.insert(1, 0);
arrays.show(arrays);//[1, 0, 2, 3]
Object arrObj = arrays.get(1);
System.out.println(arrObj);//0
arrays.delete(2);
arrays.show(arrays);//[1, 0, 3]
arrays.deleteElement(3);
arrays.show(arrays);//[1, 0]
System.out.println(arrays.size());//2
System.out.println(arrays.isEmpty());//false
}
}
장점:
단점:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.