gpt4 book ai didi

java - 列表到哈希集

转载 作者:行者123 更新时间:2023-12-02 11:46:08 25 4
gpt4 key购买 nike

所以我的问题是我不想在对象列表中出现重复的名称。

所以我尝试将list转换为hashset,但它仍然有同名的行。

基本上我只想获取 Flow2 的 1 行和 TestFlow 的另一行而不是 4。 http://prntscr.com/hylkoc

public static Set<TestFlow> getFlows() {
SessionFactory factory = HibernateUtil.GetSessionFactory();
Session hibernateSession = factory.openSession();
Transaction tx = null;
List<TestFlow> testFlows;
Set<TestFlow> testFlowSet = new HashSet<>();
try {
tx = hibernateSession.beginTransaction();
testFlows = hibernateSession.createQuery("FROM TestFlow").list();
testFlowSet = new HashSet<>(testFlows);
tx.commit();
} catch (HibernateException e) {
if (tx != null) tx.rollback();
e.printStackTrace();
} finally {
hibernateSession.close();
}
return testFlowSet;
}

最佳答案

TestFlow 是一个对象,因此具有相同名称的记录并不意味着它等于另一个对象。

您可以使用 map 来代替:

Map<String, TestFlow>

键是名称,值是 TestFlow 记录。这样,如果该名称存在,您就不会将该记录添加到 map 中。

另一个选项是重写 equals 方法,尽管如果您在其他地方使用该对象并且它有一堆字段,这可能不是一个好主意。

关于java - 列表到哈希集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48192385/

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