原文: https://howtodoinjava.com/data-structure/list-implementation-example-in-java/
在本教程中,我将给出 Java 中List的示例实现。 通过在DemoList类中添加或删除方法,可以随意自定义列表的行为。 如果您有一些想法可以改善此实现,请与我们分享。
Java 列表实现示例
在此类DemoList.java中,我们将创建具有以下功能的List实现:
- 列表可能会从零增长到无限大小(至少在理论上是这样)。
- 创建列表时,将使用最少 10 个元素初始化列表。
- 列表将提供在生命周期中任何状态下获取,添加,删除和打印列表的方法。
列表实现的源代码
package com.howtodoinjava.datastructure;import java.util.Arrays;public class DataList<E>{//Size of listprivate int size = 0;//Default capacity of list is 10private static final int DEFAULT_CAPACITY = 10;//This array will store all elements added to listprivate Object elements[];//Default constructorpublic DataList() {elements = new Object[DEFAULT_CAPACITY];}//Add methodpublic void add(E e) {if (size == elements.length) {ensureCapacity();}elements[size++] = e;}//Get method@SuppressWarnings("unchecked")public E get(int i) {if (i >= size || i < 0) {throw new IndexOutOfBoundsException("Index: " + i + ", Size " + i);}return (E) elements[i];}//Remove method@SuppressWarnings("unchecked")public E remove(int i) {if (i >= size || i < 0) {throw new IndexOutOfBoundsException("Index: " + i + ", Size " + i);}Object item = elements[i];int numElts = elements.length - ( i + 1 ) ;System.arraycopy( elements, i + 1, elements, i, numElts ) ;size--;return (E) item;}//Get Size of listpublic int size() {return size;}//Print method@Overridepublic String toString(){StringBuilder sb = new StringBuilder();sb.append('[');for(int i = 0; i < size ;i++) {sb.append(elements[i].toString());if(i<size-1){sb.append(",");}}sb.append(']');return sb.toString();}private void ensureCapacity() {int newSize = elements.length * 2;elements = Arrays.copyOf(elements, newSize);}}
让我们快速测试一下List的实现。
package com.howtodoinjava.datastructure;public class Main{public static void main(String[] args){DataList<Integer> list = new DataList<>();//Add elementslist.add(1);list.add(2);list.add(3);System.out.println(list);//Remove elements from indexlist.remove(2);System.out.println(list);//Get element with indexSystem.out.println( list.get(0) );System.out.println( list.get(1) );//List SizeSystem.out.println(list.size());}}
Output:[1,2,3,4,5][1,2,4,5]124
如以上输出所示,我们的列表实现能够提供所有必要的功能。
学习愉快!
