如何在Java中使用数组列表?

soa*_*yek 48 java arraylist

我需要知道是否将数据存储在ArrayList中,我需要获取存储在其中的值.

例如:如果我有这样的数组列表

      ArrayList A = new ArrayList();
      A = {"Soad", "mahran"};
Run Code Online (Sandbox Code Playgroud)

我想得到每个String元素,我该怎么做?

我尝试通过以下代码执行此操作:

package arraylist;

import java.util.ArrayList;

public class Main {

        public static void main(String[] args) {
        ArrayList S = new ArrayList();

        String A = "soad ";
        S.add(A);
        S.add("A");
        String F = S.toString();
        System.out.println(F);
        String [] W = F.split(",");
        for(int i=0 ; i<W.length ; i++) {
           System.out.println(W[i]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

pol*_*nts 53

下面的代码片段给出了一个示例,说明如何从List指定索引处获取元素,以及如何使用高级for-each循环遍历所有元素:

    import java.util.*;

    //...

    List<String> list = new ArrayList<String>();
    list.add("Hello!");
    list.add("How are you?");

    System.out.println(list.get(0)); // prints "Hello!"

    for (String s : list) {
        System.out.println(s);
    } // prints "Hello!", "How are you?"
Run Code Online (Sandbox Code Playgroud)

请注意以下事项:

  • 使用通用List<String>ArrayList<String>类型而不是原始ArrayList类型.
  • 变量名以小写字母开头
  • list声明为List<String>,即接口类型而不是实现类型ArrayList<String>.

参考

API:

不要使用原始类型

  • JLS 4.8原始类型

    原始类型的使用仅允许作为遗留代码兼容性的让步.强烈建议不要在将通用性引入Java编程语言之后编写的代码中使用原始类型.未来版本的Java编程语言可能会禁止使用原始类型.

  • Effective Java 2nd Edition:第23项:不要在新代码中使用原始类型

    如果使用原始类型,则会失去仿制药的所有安全性和表现力.

首选接口到类型声明中的实现类

  • Effective Java 2nd Edition:Item 52:通过接口引用对象

    [...]你应该倾向于使用接口而不是类来引用对象.如果存在适当的接口类型,则应使用接口类型声明参数,返回值,变量和字段.

命名约定

变量:除变量外,所有实例,类和类常量都是小写的第一个字母.


jju*_*uma 6

一个列表是一个有序的集合元素.您可以使用add方法添加它们,并使用get(int index)方法检索它们.您还可以迭代List,删除元素等.以下是使用List的一些基本示例:

List<String> names = new ArrayList<String>(3); // 3 because we expect the list 
    // to have 3 entries.  If we didn't know how many entries we expected, we
    // could leave this empty or use a LinkedList instead
names.add("Alice");
names.add("Bob");
names.add("Charlie");
System.out.println(names.get(2)); // prints "Charlie"
System.out.println(names); // prints the whole list
for (String name: names) {
    System.out.println(name);  // prints the names in turn.
}
Run Code Online (Sandbox Code Playgroud)


dvd*_*dvd 2

这应该可以解决问题:

String elem = (String)S.get(0);
Run Code Online (Sandbox Code Playgroud)

将返回数组中的第一项。

或者

for(int i=0 ; i<S.size() ; i++){
     System.out.println(S.get(i));
}
Run Code Online (Sandbox Code Playgroud)

  • @dvd:忘记应该做什么,遵循@polygenelubricants 描述的正确编码实践和标准。稍后你会为此感谢他的。 (2认同)