# 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
```

如以上输出所示，我们的列表实现能够提供所有必要的功能。

学习愉快！