【问题标题】:Java - Is there any alternative, third-party Collections (ArrayList, etc.) libraries?Java - 是否有任何替代的第三方集合(ArrayList 等)库?
【发布时间】:2023-03-25 07:45:01
【问题描述】:

故事是我现在正在为 Android 编程。

我发现 ArrayList 真的很慢,尤其是与列表视图的适配器一起使用时,因为我的项目需要排序和搜索。 那里有替代图书馆吗?

非常感谢。

【问题讨论】:

标签: java android collections arraylist


【解决方案1】:

您可以使用现有的 Java 集合进行排序和搜索。我认为不需要其他任何东西。

但还有其他选择,例如 Google Collections 和 Apache Commons 的东西。

【讨论】:

    【解决方案2】:

    除了标准java API中的Collection框架外,以下两个以丰富的collection框架而闻名。

    【讨论】:

      【解决方案3】:

      正如其他答案所说,有一些替代的 Collection 库。

      但是,您的核心问题可能不是库,而是您自己选择的 Collection。使用不同的库,不会改变这一点。

      在 Java 和 Android 中,您可以使用大量的 Collection 选择,它们各有优缺点。

      这是一种长篇大论的写法,所以除非你准确地写下你想用它做什么,否则没有人能真正告诉你哪种选择是最好的。 但是,为了让您有一点开始,您可以看一下这个;

      【讨论】:

      • 哇!我喜欢这个图表!太感谢了!事实上,我正在为 Android 开发一个 XMPP 聊天应用程序。主要的性能问题出现在好友列表屏幕上。
      • 为什么会有性能问题?我想它只是你从 ContentProvider 返回的联系人对象列表,你在 ListView 中显示。即使有人有数百个联系人也不应该成为问题,因为适配器只负责加载可见的一个 + 一些额外的平滑滚动..
      • 那是因为我正在使用第三方库 (asmack),并且联系人列表是作为带有代码的集合给出的,例如 [code] Collection entries = connection.getRoster()。获取条目(); [/code]...
      • 嗯,我确实使用该库开发了一个聊天应用程序,但不记得这部分的性能存在任何实际问题。您应该只使用名册信息将其保存在您自己的数据库中,当然是在后台,然后在需要时将其从数据库中加载到您喜欢的任何集合中。
      【解决方案4】:

      ArrayList 的缺点是不能在其中存储原语。
      与数组相比,这会导致更多的内存使用。
      在您拥有非常庞大的数组的情况下(例如 > 十或十万个元素) 不断增长的原始数组通常是更好的解决方案。

      本文展示了使用原始类型实现您自己的ArrayListLong

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-30
        • 2011-04-11
        • 2011-09-28
        • 1970-01-01
        • 1970-01-01
        • 2017-03-06
        • 2011-04-21
        • 1970-01-01
        相关资源
        最近更新 更多