如何在Java中的ArrayList末尾附加元素?

Posted

技术标签:

【中文标题】如何在Java中的ArrayList末尾附加元素?【英文标题】:How to append elements at the end of ArrayList in Java? 【发布时间】:2014-05-01 21:01:30 【问题描述】:

我想知道,如何在 Java 中将元素附加到 ArrayList 的末尾?这是我到目前为止的代码:

public class Stack 

    private ArrayList<String> stringList = new ArrayList<String>();

    RandomStringGenerator rsg = new RandomStringGenerator();

    private void push()
        String random = rsg.randomStringGenerator();
        ArrayList.add(random);
    


“randomStringGenerator”是一种生成随机字符串的方法。

我基本上希望总是在 ArrayList 的末尾附加随机字符串,就像一个堆栈(因此命名为“push”)。

非常感谢您抽出宝贵时间!

【问题讨论】:

使用stringList.add。它被“附加”到最后.. 你认为这 - ArrayList.add(random); 会做什么?它将添加到哪个数组列表? 如果您想要像堆栈一样工作的东西,为什么不使用堆栈? @AnthonyGrist 他正在尝试实现由ArrayList 支持的Stack @RohitJain 我现在知道这是错误的,我是编程新手,并认为您必须在 ArrayList 上使用“add”方法,因为该方法属于该类,然后我以为如果你写“random”,它会将字符串“random”附加到ArrayList,但当然,这没什么意义,因为计算机怎么知道将它添加到“stringList”,对吧? 【参考方案1】:

以下是语法,以及您可能会发现有用的其他一些方法:

    //add to the end of the list
    stringList.add(random);

    //add to the beginning of the list
    stringList.add(0,  random);

    //replace the element at index 4 with random
    stringList.set(4, random);

    //remove the element at index 5
    stringList.remove(5);

    //remove all elements from the list
    stringList.clear();

【讨论】:

【参考方案2】:

我知道这是一个老问题,但我想自己回答。如果您“真的”想要添加到列表末尾而不是使用list.add(str),这是另一种方法,您可以这样做,但我不推荐。

 String[] items = new String[]"Hello", "World";
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list, items);
        int endOfList = list.size();
        list.add(endOfList, "This goes end of list");
        System.out.println(Collections.singletonList(list));

这是将项目添加到列表末尾的“紧凑”方式。 这是一种更安全的方法,包括空值检查等等。

String[] items = new String[]"Hello", "World";
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list, items);
        addEndOfList(list, "Safer way");
        System.out.println(Collections.singletonList(list));

 private static void addEndOfList(List<String> list, String item)
            try
                list.add(getEndOfList(list), item);
             catch (IndexOutOfBoundsException e)
                System.out.println(e.toString());
            
        

   private static int getEndOfList(List<String> list)
        if(list != null) 
            return list.size();
        
        return -1;
    

这是另一种将项目添加到列表末尾的方法,快乐编码:)

【讨论】:

【参考方案3】:
import java.util.*;


public class matrixcecil 
    public static void main(String args[])
        List<Integer> k1=new ArrayList<Integer>(10);
        k1.add(23);
        k1.add(10);
        k1.add(20);
        k1.add(24);
        int i=0;
        while(k1.size()<10)
            if(i==(k1.get(k1.size()-1)))

            
             i=k1.get(k1.size()-1);
             k1.add(30);
             i++;
             break;
        
        System.out.println(k1);
    


我认为这个例子会帮助你找到更好的解决方案。

【讨论】:

【参考方案4】:

我遇到了类似的问题,只是将数组的末尾传递给ArrayList.add() 索引参数,如下所示:

public class Stack 

    private ArrayList<String> stringList = new ArrayList<String>();

    RandomStringGenerator rsg = new RandomStringGenerator();

    private void push()
        String random = rsg.randomStringGenerator();
        stringList.add(stringList.size(), random);
    


【讨论】:

以上是关于如何在Java中的ArrayList末尾附加元素?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA基础——集合——ArrayList

java ArrayList数组中如何插入一个元素

java ArrayList数组中如何插入一个元素

获取最后添加的元素 Arraylist

如果ArrayList的最后一个元素如何排除字符附加

java基础之ArrayList方法