Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java有类似数据库的结构吗?_Java - Fatal编程技术网

Java有类似数据库的结构吗?

Java有类似数据库的结构吗?,java,Java,我一直在编写一种“排序和聚合”方法,使这个~100MB的数据集能够高效地搜索,但代码有点长 对象是简单的类,如 class item { public int type = 1; public int damage = 4; } 我所做的就是创建一个类,在这个类中我可以说items.type(1).damage(4).getItem() Java有没有类似的类来将对象转换为可搜索的对象 我一直在研究Java集合和实体,我写的是一个巨大的ArrayList,有几个HashMapJ

我一直在编写一种“排序和聚合”方法,使这个~100MB的数据集能够高效地搜索,但代码有点长

对象是简单的类,如

class item {
    public int type = 1;
    public int damage = 4;
}
我所做的就是创建一个类,在这个类中我可以说
items.type(1).damage(4).getItem()

Java有没有类似的类来将对象转换为可搜索的对象


我一直在研究Java集合和实体,我写的是一个巨大的
ArrayList
,有几个
HashMap

Java 8可能适合:

Item item = items.stream()
    .filter((it) -> it.type == 1)
    .filter((it) -> it.damage == 4)
    .findFirst().orElse(null);

另外,在您的情况下,
.parallel()
可能有助于提高速度(分而治之)。

首先想到的问题是:对于1亿条记录数据集,您为什么不想使用真正的、经过验证的数据库?感觉就像你在重新发明轮子。有很多免费的、开源的、相当容易使用的系统。PostgreSQL恰好是我目前最喜欢的,但现在你甚至不必使用关系数据库。胡猜,这与Minecraft有关吗?@immibis Hah:P不,我只是在用基本java和Graphics2D进行游戏设计试验。这可能比数据大小更相关;其实没有那么多。问题:使用简单线性搜索的性能如何?这是您在尝试优化之前应该检查的内容。如果这不好,那么优化一个参数的搜索又如何呢?这可能是通过某种类型的bucket结构来实现的,它可以放在一个hash映射中(将参数映射到bucket列表)。你只需对水桶本身进行线性搜索。哦,哇,看起来就像LINQ。很高兴知道它的存在,我现在正在检查它。