【问题标题】:Java ArrayList IndexJava ArrayList 索引
【发布时间】:2010-11-30 11:59:07
【问题描述】:
int[] alist = new int [3];
alist.add("apple");
alist.add("banana");
alist.add("orange");

假设我想使用 ArrayList 中的第二项。得到以下输出的编码是什么?

输出:

香蕉

【问题讨论】:

  • 您的代码将无法编译:alist 它是一个数组,但您可以像使用 List 一样使用它——这是不可能的,并且 alist 是整数类型——您无法将字符串分配给它。跨度>

标签: java arraylist


【解决方案1】:

你有ArrayList都错了,

  • 您不能有一个整数数组并分配一个字符串值。
  • 您不能在数组中执行add() 方法

宁可这样做:

List<String> alist = new ArrayList<String>();
alist.add("apple");
alist.add("banana");
alist.add("orange");

String value = alist.get(1); //returns the 2nd item from list, in this case "banana"

索引从0 计数到N-1,其中N 是列表中的size()

【讨论】:

    【解决方案2】:

    阅读更多关于ArrayArrayList的信息

    List<String> aList = new ArrayList<String>();
    aList.add("apple");   
    aList.add("banana");   
    aList.add("orange");   
    String result = alist.get(1);  //this will retrieve banana
    

    注意:索引从 0 开始,即零

    【讨论】:

      【解决方案3】:

      使用数组:

      String[] fruits = new String[3]; // make a 3 element array
      fruits[0]="apple";
      fruits[1]="banana";
      fruits[2]="orange";
      System.out.println(fruits[1]); // output the second element
      

      使用列表

      ArrayList<String> fruits = new ArrayList<String>();
      fruits.add("apple");
      fruits.add("banana");
      fruits.add("orange");
      System.out.println(fruits.get(1));
      

      【讨论】:

        【解决方案4】:

        与所有类 C 语言中的数组完全一样。索引从0开始。所以,苹果是0,香蕉是1,橙子是2等等。

        【讨论】:

          【解决方案5】:

          为了将字符串存储在动态数组(添加方法)中,您不能将其定义为整数数组( int[3] )。你应该这样声明它:

          ArrayList<String> alist = new ArrayList<String>();
          alist.add("apple"); 
          alist.add("banana"); 
          alist.add("orange"); 
          
          System.out.println( alist.get(1) );
          

          【讨论】:

            【解决方案6】:

            原始数组和基于对象的集合(例如 ArrayList)之间的最大区别在于后者可以动态增长(或缩小)。原始数组的大小是固定的:一旦创建它们,它们的大小就不会改变(尽管内容可以)。

            【讨论】:

              【解决方案7】:

              我会这样写。

              String[] fruit = "apple banana orange".split(" ");
              System.out.println(fruit[1]);
              

              【讨论】:

              • 你不是认真的吧?为什么不把你的第一行写成String[] fruit = "applesbananasorange".replace('s', ' ').split(" ");?如果已经有 CPU,则应使用 CPU。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-01-22
              • 2014-05-15
              • 2013-10-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多