gpt4 book ai didi

java - Java 中多种类型对象的高效重复检查

转载 作者:太空宇宙 更新时间:2023-11-04 06:44:13 25 4
gpt4 key购买 nike

我正在开发一个项目,其中有多个类来保存从 xml 文件加载的数据。我想解决的问题是几乎所有的类都有这些方法:

  • addSingle[对象名称]
  • addMultiple[对象名称]

但是,一个类中可能有更多类型的对象需要通过这种方式添加。例如:

    class Airspace {        private List airports;        private List waypoints;    ...       public void addSingleAirport(Airport a) {...}       public void addMultipleAirports(Airport[] a {...}       public void addSingleWaypoint(Waypoint w) {...}       public void addMultipleWaypoints(Waypoint w) {...}    }

我正在考虑将这些 addSingleaddMultiple 方法放入接口(interface)中,然后在实现这些方法时根据对象类型决定应将其添加到哪个列表,但这不是很愚蠢吗?

有没有更有效的方法来做到这一点?我想避免将这些方法写入每个需要它们的特定对象的类中,因为它们的作用完全相同。

最佳答案

我不认为你的方法很愚蠢,但这种类型检查确实会影响性能。

尽管如此,扩展您的方法,我会保留按 Class 索引的列表的映射:

class Airspace {
private Map<Class, List<Object>> lists = new HashMap();

public void addSingle(Object o)
{
List<Object> list = lists.get(o.getClass());
if(list == null)
{
list = new ArrayList();
lists.put(o.getClass(), list);
}
list.add(o);
}
...
...

关于java - Java 中多种类型对象的高效重复检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241442/

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