java - 使用数组实现列表

标签 java list arraylist

我正在尝试使用数组和泛型来实现列表。我对如何将值插入通用列表感到困惑。扫描仪的 nextXXX 变体需要特定类型,但我们仅在运行时知道该类型。

class Arraylist<T>
{
    static Scanner input = new Scanner(System.in);
    static T list[];
    static int top = -1;

    public static void displaymenu()
    {
        int choice;
        do {
            // get choice from user
            switch (choice) {
            case 1:
                list = createlist();
                break;
            case 2:
                insertnode();
                break;
            // ........
            }
        } while (true);
    }

    public static Object[] createlist()
    {
        list = new T[LIST_SIZE];
        return list;
    }

    public static void insertnode()
    {
        T o;
        top++;
        out.println("Enter the value to insert:");
        // o = user's input. I'm confused here???
    }
}

谢谢。

最佳答案

像这样怎么样:

public class ArrayList<T> {
    private T list[];
    private int last;
    public ArrayList() {
        list = (T[])new Object[10];
    }
    public void add(T elem) {
        if(last < list.length)
            list[last++] = elem;
        else {
            T newList[] = (T[])new Object[list.length*2];
            System.arraycopy(list, 0, newList, 0, list.length);
            list = newList;
            list[last++] = elem;
        }
    }
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append('[');
        for(int i = 0; i < last; i++) {
            sb.append(list[i].toString()+",");
        }
        sb.replace(sb.length()-1, sb.length(), "");
        sb.append(']');
        return sb.toString();
    }

    public static void main(String[] args) {
        ArrayList<String> stringList = new ArrayList<String>();
        stringList.add("Hello");
        stringList.add("World");
        stringList.add("Foo");
        System.out.println(stringList);
    }
}

关于java - 使用数组实现列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7383302/

相关文章:

list - 如何在 Groovy 中用逗号分隔 List 元素?

Python 3 正在将元素添加到列表中,而不管 dict 中使用的键是什么

arrays - 从 ArrayList 中删除嵌套数组或 PSCustomObject

java - JNA java.lang.UnsatisfiedLinkError : Unable to load library './OUNPPM'

java - 如何在 JavaFX 中将 (0,0) 处的水平线和垂直线颜色加深

python - 干净的 Python 正则表达式

java - ArrayList<List<>>变量在Java中通过引用复制值?

java - ArrayList操作

Java Scanner指定行分隔符

java - 当我单击 RecyclerView 项目时, fragment 加载数据错误的数据