Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将元素添加到ArrayList_Java_Arrays_Methods - Fatal编程技术网

Java 如何将元素添加到ArrayList

Java 如何将元素添加到ArrayList,java,arrays,methods,Java,Arrays,Methods,如何让用户输入一个数字,然后将数组向右移动1。数组不能超过50。请帮助,提前感谢: List<Integer> list = new ArrayList<Integer>(1); public void add(int value) { list.add(0, value); for(int i = 0; i < array.length; i++) { list.add(index, value); // h

如何让用户输入一个数字,然后将数组向右移动1。数组不能超过50。请帮助,提前感谢:

  List<Integer> list = new ArrayList<Integer>(1);
    public void add(int value) {

      list.add(0, value);
      for(int i = 0; i < array.length; i++) {
         list.add(index, value); // how to make the elements shift to the right?
         if(list.size > 50) {
           list.remove(50);
          }
       }
    }
ArrayList为您移动元素,这就是为什么它有索引

创建ArrayList时:新建ArrayList 50不定义大小,请定义ArrayList的容量。“创建时”为空且大小为0

List<Integer> list = new ArrayList<Integer>(50);


public void add(int value) {
  if (list.size <= 50) list.remove(list.size() - 1);

  // inserting element at position 0 shifts other elements
  list.add(0, value);

}

我看不到代码的其余部分。我不知道add之前的列表长度是多少,所以我只是保证它在列表中的指定位置插入指定的元素。如果存在任何元素,则移动当前位于该位置的元素,并且任何后续元素向右移动会将一个元素添加到其索引中。由此

因此,您只需检查列表的大小是否不超过50,然后将数字添加到指定的索引中

List<Integer> list = new ArrayList<Integer>(50);

  public void add(int value) {

     if (list.size() == 50) // if the size of the array is 50, then remove the last value.
     list.remove(list.size() -1);

     list.add(int index, E element);// you can even choose where position to insert your value.
  }

在构造函数部分,您定义的是容量。默认最小容量为10。你知道你的阵型不能超过50。有一种可能性,元素的数量必须少于50。因此,首先将构造函数部分保留为空

List<Integer> list = new ArrayList<Integer>();
    public void add(int value) {
        if(list.size() <50)
            list.add(0,value);
            else
            {
                list.remove(list.size()-1);
                list.add(0, value);
            }

为什么要在列表中间添加?我如何在列表中间添加?数组!ArrayListIndex是在哪里定义的?是否有任何特定的原因要使用数组。看起来java.util.LinkedList对您来说是一个更好的选择,如果您不了解构造函数参数initialCapacity,请先将元素添加到头部addFirst。你以前是对的,真的吗?有那么简单吗?考虑到这一点,但我认为这肯定有点困难。如果他使用数组而不是集合作为列表,他应该手动处理。arraylist增长,这就是问题所在,参数50只是初始大小。您将大小设置为50,但在删除之前,此arraylist将包含51。因此,它将不得不调整大小,因此您已尝试提高效率,但这弊大于利。为什么需要一段时间?如果您认为还有更多元素,请使用no?@JordiCastilla,因为我看不到代码的其余部分。我不知道添加前列表的长度是多少,所以我只是保证为什么不删除范围?您不应该定义容量来优化内存使用吗?@JordiCastilla,因为removeRange是受保护的。因此,我必须将ArrayList.list.getlist.size-1子类化,因为size是列表中元素的实际数量,而不是当前容量。您知道如何获取列表的最后一个值吗。例如,如果50大小列表中有11个元素。如何获得第11个元素的值?@BriannaXD列表的大小给出元素的数量;由于索引从0开始,因此可以使用listName.getlistName.size-1获取存储在列表listName中的最后一个值。你可以问StackOverflow:[谢谢!!你也知道如何获取列表的最后一个值。例如,如果50个大小的列表中有11个元素。我如何获取第11个元素的值?list.size-1提供最后一个元素的索引。你知道你在ArrayList的末尾添加新元素,对吗?不是在OP要求的开始。
public class TestList {
   public static void main(String[] args) {

   ArrayList<Integer> arrlist = new ArrayList<Integer>(4);

   // use add() method to add elements in the list
   arrlist.add(15);
   arrlist.add(4);
   arrlist.add(5);

   // adding element 25 at third position
   arrlist.add(2,25);

   for (Integer number : arrlist) {
   System.out.println("List Value = " + number);
   }  
   }
}
List<Integer> list = new ArrayList<Integer>(50);

  public void add(int value) {

     if (list.size() == 50) // if the size of the array is 50, then remove the last value.
     list.remove(list.size() -1);

     list.add(int index, E element);// you can even choose where position to insert your value.
  }
List<Integer> list = new ArrayList<Integer>();
    public void add(int value) {
        if(list.size() <50)
            list.add(0,value);
            else
            {
                list.remove(list.size()-1);
                list.add(0, value);
            }