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

2022-08-31 22:08:46

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

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

      ArrayList A = new ArrayList();
      A = {"Soad", "mahran"};

我想得到每个字符串元素,我该怎么做?

我试图通过以下代码来做到这一点:

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]);
        }
    }
}

答案 1

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

    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?"

请注意以下几点:

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

引用

应用程序接口:

不要使用原始类型

  • JLS 4.8 原始类型

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

  • 有效的 Java 第 2 版:第 23 项:不要在新代码中使用原始类型

    如果使用原始类型,则会失去泛型的所有安全性和表现力优势。

在类型声明中,首选接口而不是实现类

  • 有效的 Java 第 2 版:第 52 项:通过接口引用对象

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

命名约定

变量:除变量外,所有实例、类和类常量都采用混合大小写,首字母为小写字母。


答案 2

列表是元素的有序集合。可以使用 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.
}

推荐