多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java 中的自定义列表实现示例 > 原文: [https://howtodoinjava.com/data-structure/list-implementation-example-in-java/](https://howtodoinjava.com/data-structure/list-implementation-example-in-java/) 在本教程中,我将给出 Java 中`List`的示例**实现**。 通过在`DemoList`类中添加或删除方法,可以随意自定义列表的行为。 如果您有一些想法可以改善此实现,请与我们分享。 ## Java 列表实现示例 在此类`DemoList.java`中,我们将创建具有以下功能的`List`实现: * 列表可能会从零增长到无限大小(至少在理论上是这样)。 * 创建列表时,将使用最少 10 个元素初始化列表。 * 列表将提供在生命周期中任何状态下获取,添加,删除和打印列表的方法。 ## 列表实现的源代码 ```java package com.howtodoinjava.datastructure; import java.util.Arrays; public class DataList<E> { //Size of list private int size = 0; //Default capacity of list is 10 private static final int DEFAULT_CAPACITY = 10; //This array will store all elements added to list private Object elements[]; //Default constructor public DataList() { elements = new Object[DEFAULT_CAPACITY]; } //Add method public 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 list public int size() { return size; } //Print method @Override public 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`的实现。 ```java package com.howtodoinjava.datastructure; public class Main { public static void main(String[] args) { DataList<Integer> list = new DataList<>(); //Add elements list.add(1); list.add(2); list.add(3); System.out.println(list); //Remove elements from index list.remove(2); System.out.println(list); //Get element with index System.out.println( list.get(0) ); System.out.println( list.get(1) ); //List Size System.out.println(list.size()); } } ``` ```java Output: [1,2,3,4,5] [1,2,4,5] 1 2 4 ``` 如以上输出所示,我们的列表实现能够提供所有必要的功能。 学习愉快!