gpt4 book ai didi

java - 在java中存储更多维度数据的最佳方式?

转载 作者:行者123 更新时间:2023-12-02 06:13:28 25 4
gpt4 key购买 nike

我有一些输入,例如:

  package 1 : org.orchestr.something  version= 5.1.3

uses = org.do.resource ; version= 1.2.1
uses = org.test.summer ; version= 1.5.2


package 2 : fr.test.something version= 5.1.3

uses = com.java.rest ; version= 1.0.1
uses = org.osgi.summer ; version= 1.4.2

....

因此,在这些数据中,我有一组由其版本定义的包,以及它们在特定版本中使用的其他包,我想知道存储此类数据的最佳方法/实用方法。

最佳答案

您可以将其建模为工件 map :

import java.util.Objects;

public class Artifact {
private String name;
private String version;

public Artifact(String name, String version) {
this.name = name;
this.version = version;
}

public String getVersion() {
return version;
}

public void setVersion(String version) {
this.version = version;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Artifact that = (Artifact) o;
return version.equals(that.version) &&
name.equals(that.name);
}

@Override
public int hashCode() {
return Objects.hash(version, name);
}
}

这里是它的用法:

    public static void main(String[] args) {
Map<Artifact, Set<Artifact>> map = new HashMap<>();


Set<Artifact> dependencies = new HashSet<>();
dependencies.add(new Artifact("org.do.resource ", "1.2.1"));
dependencies.add(new Artifact("org.test.summer ", "1.5.2"));

map.put(new Artifact("org.orchestr.something", "5.1.3"), dependencies);
}

我必须重写 Artifact 类的 equalshashcode 方法,因为此类的对象将用作 HashMap 中的键。如果您还想支持包版本,只需将此类字段添加到Artifact类中,并添加适当的构造函数、getters、setters并修改equalshashcode方法相应地。

关于java - 在java中存储更多维度数据的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55891295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com