Java可以高效地存储大量已排序的数据

Java可以高效地存储大量已排序的数据,java,performance,arraylist,set,Java,Performance,Arraylist,Set,通常,当我想用java存储大量数据时,我会使用集合,这是非常快速和高效的 Set<String> example = new HashSet<String>(); 还有别的方法吗?我需要对我的数据进行排序(按日期排序),并且新元素不断添加到列表中您可以使用树集,它是Set的一个实现 它使用可比较的自然顺序或给定的比较器对元素进行排序 设置示例=新树集() 检查api您可以使用TreeSet,它是Set的一个实现 它使用可比较的自然顺序或给定的比较器对元素进行排序 设置

通常,当我想用java存储大量数据时,我会使用
集合
,这是非常快速和高效的

 Set<String> example = new HashSet<String>();

还有别的方法吗?我需要对我的数据进行排序(按日期排序),并且新元素不断添加到
列表中

您可以使用树集,它是Set的一个实现
它使用可比较的自然顺序或给定的比较器对元素进行排序

设置示例=新树集()


检查api您可以使用TreeSet,它是Set的一个实现
它使用可比较的自然顺序或给定的比较器对元素进行排序

设置示例=新树集()


检查api您可以使用TreeSet,它是Set的一个实现
它使用可比较的自然顺序或给定的比较器对元素进行排序

设置示例=新树集()


检查api您可以使用TreeSet,它是Set的一个实现
它使用可比较的自然顺序或给定的比较器对元素进行排序

设置示例=新树集()


检查api您可以使用TreeSet!使用树集并逐个添加值。当您获得值时,它将为您提供数据的排序值

您可以使用TreeSet!使用树集并逐个添加值。当您获得值时,它将为您提供数据的排序值

您可以使用TreeSet!使用树集并逐个添加值。当您获得值时,它将为您提供数据的排序值

您可以使用TreeSet!使用树集并逐个添加值。当您获得值时,它将为您提供数据的排序值

如果您只是想以排序的形式保存数据,那么最有效的解决方案是:

  • 将数据加载到
    ArrayList
  • 复制到数组
  • 使用
    array.sort
    对数组进行排序
  • 要搜索,请使用“二进制搜索”,即
    O(logN)

  • 如果您希望能够构建穿插构建和搜索,那么可以使用树集。这将使用更多内存,但对于增量构建的集合,它将更快,搜索性能也将大致相同。

    如果您只想以排序形式保存数据,那么最有效的解决方案是:

  • 将数据加载到
    ArrayList
  • 复制到数组
  • 使用
    array.sort
    对数组进行排序
  • 要搜索,请使用“二进制搜索”,即
    O(logN)

  • 如果您希望能够构建穿插构建和搜索,那么可以使用树集。这将使用更多内存,但对于增量构建的集合,它将更快,搜索性能也将大致相同。

    如果您只想以排序形式保存数据,那么最有效的解决方案是:

  • 将数据加载到
    ArrayList
  • 复制到数组
  • 使用
    array.sort
    对数组进行排序
  • 要搜索,请使用“二进制搜索”,即
    O(logN)

  • 如果您希望能够构建穿插构建和搜索,那么可以使用树集。这将使用更多内存,但对于增量构建的集合,它将更快,搜索性能也将大致相同。

    如果您只想以排序形式保存数据,那么最有效的解决方案是:

  • 将数据加载到
    ArrayList
  • 复制到数组
  • 使用
    array.sort
    对数组进行排序
  • 要搜索,请使用“二进制搜索”,即
    O(logN)

  • 如果您希望能够构建穿插构建和搜索,那么可以使用树集。这会占用更多内存,但对于增量构建的集合,它会更快,搜索性能也会大致相同。

    数据结构是否需要动态?或者可以假定元素的最大数量?如果是这样的话,一个简单的数组就可以做到这一点。恐怕它需要是动态的。看看
    TreeSet
    。为什么在列表中存储100000个字符串会影响程序性能,而在集合中存储它们却不会影响程序性能?是否需要快速检查集合中是否存在字符串?您还对哪些操作感兴趣?除非您清楚地描述数据结构的关键使用模式(和约束),否则我们无法给您任何有价值的建议。数据结构是否需要是动态的?或者可以假定元素的最大数量?如果是这样的话,一个简单的数组就可以做到这一点。恐怕它需要是动态的。看看
    TreeSet
    。为什么在列表中存储100000个字符串会影响程序性能,而在集合中存储它们却不会影响程序性能?是否需要快速检查集合中是否存在字符串?您还对哪些操作感兴趣?除非您清楚地描述数据结构的关键使用模式(和约束),否则我们无法给您任何有价值的建议。数据结构是否需要是动态的?或者可以假定元素的最大数量?如果是这样的话,一个简单的数组就可以做到这一点。恐怕它需要是动态的。看看
    TreeSet
    。为什么在列表中存储100000个字符串会影响程序性能,而在集合中存储它们却不会影响程序性能?是否需要快速检查集合中是否存在字符串?您还对哪些操作感兴趣?除非您清楚地描述数据结构的关键使用模式(和约束),否则我们无法给您任何有价值的建议。数据结构是否需要是动态的?或者可以假定元素的最大数量?如果是这样的话,一个简单的数组就可以做到这一点。恐怕它需要是动态的。看看
    TreeSet
    。为什么在列表中存储100000个字符串会影响程序性能,而在集合中存储它们却不会影响程序性能?是否需要快速检查集合中是否存在字符串?您还对哪些操作感兴趣?除非您清楚地描述数据结构的关键使用模式(和约束),否则我们无法向您提供任何有价值的建议。
    ArrayList<String> example = new ArrayList<String>()