java - 内存中的数据操作

标签 java vector arraylist data-management

我知道在内存中操作数据总是比在文件中操作数据更好。目前,我将所有传入的数据放入一个静态 ArrayList 中,当该 ArrayList 超过 80 个条目时,我的程序会将这个 ArrayList 的内容保存到一个文件中,并清除该数组以用于下一波即将到来的数据。

我想知道使用 Vector 是否比 ArrayList 更好(或更差)。如果有差异,哪个更好/更差?在什么情况下?

这是我的相关代码:

public class Exchange () {
    private static ArrayList<String> datain = new ArrayList<String> ();
    public static void addData(String s) {
        datain.add(s);
    }

    public static boolean checkSize() {
        if (datain.size() >= 80)
            return true;
        else
            return false;
    }

    public static void writeData() throws FileNotFoundException {
        PrintWriter pw = new PrintWriter(new File ("myfile.txt"));
        for (int i = 0; i < datain.size(); i++) {
            pw.println(datain.get(i);
        }
        pw.close();
    }

    public static void clear() {
        datain = new ArrayList<String>();
    }
}

附注这种方法目前效果很好,我只是想知道对于这种情况使用 vector 是否会更好。另外,如果您发现任何不好的设计,请随时指出。谢谢!

最佳答案

在绝大多数情况下,使用ArrayList就足够了。主要区别在于 Vector 是线程安全的,而 ArrayList 不是,但由于您不使用多个线程,因此没有理由更喜欢 代码中 ArrayList 上的 >Vector

关于java - 内存中的数据操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23434726/

相关文章:

java - 如何将值添加到 List<Map<String, Object>> 中?

java - Java 中的字符串拆分不起作用?

java - java中对象的内存分配

matlab - 检查向量元素与矩阵元素

c++ - 无法在 C++ 中对类/对象的 vector 成员变量进行排序

c++ - 从 C++ 中的对 vector 生成组 vector

android - 在 android 中我如何传递 Arraylist<Float>

java - 返回由 n 个随机数组成的整数 ArrayList?

java - 我必须使用哪个 swing 组件在 java 中的同一字段中应用不同样式的文本

Java Codelab 逻辑错误