jjzjj

collection-initializer

全部标签

java - 我应该重写 Collections 的 hashCode() 吗?

假设我有一些包含各种字段的类:classMyClass{privateStrings;privateMySecondClassc;privateCollectioncoll;//...@OverridepublicinthashCode(){//????}}其中,我确实有各种我想存储在HashMap中的对象。为此,我需要拥有MyClass的hashCode()。我必须递归进入所有字段和各自的父类,以确保它们都正确实现了hashCode(),否则MyClass的hashCode()可能不会考虑某些值。这样对吗?我如何处理该集合?我可以一直依赖它的hashCode()方法吗?它会考虑我的s

java - Hibernate : could not initialize proxy - no Session 中的 LazyInitializationException

我从我的服务中调用dao@Override@TransactionalpublicProductgetProductById(intid){returnproductDao.getProductById(id);}在dao中我得到的产品是@OverridepublicProductgetProductById(intid){Productp=sessionFactory.getCurrentSession().load(Product.class,id);System.out.print(p);returnp;}这运行良好,但如果我将我的dao类更改为@OverridepublicPr

Java,为什么 collections.sort() 仍然适用于非比较器类型的参数?

我知道在javaCollections类中,有一个静态方法sort:sort(Listlist,Comparatorc**)sort中的第二个参数应该是一个实现Comparator接口(interface)的对象及其比较方法。但是当我学习lambda的方法引用时,我看到了这个例子:publicclassTest{publicstaticvoidmain(String[]args){newTest().sortWord();}publicvoidsortWord(){Listlst=newArrayList();lst.add("hello");lst.add("world");lst.

java - Collections.synchronizedList() 使用什么模式

我正在阅读方法Collections.synchronizedList()的实现并且很困惑它是装饰器模式还是代理模式的例子? 最佳答案 绝对是装饰器。它用相同接口(interface)的不同实现包装提供的列表,该接口(interface)的方法改变相同底层集合的行为(通过同步访问),同时将方法直接委托(delegate)给包装的实例。如果它是代理模式,则您不一定需要在构造期间传递要包装的集合,并且这些方法在幕后不一定会在每次调用时都引用完全相同的集合实例。另见:ExamplesofGoFDesignPatternsinJava'sc

java - HQL 中的 Collection.contains(Enum.Value)?

我对如何在HQL中做某事有点困惑。假设我有一个Foo类,我坚持hibernate。它包含一组枚举值,如下所示:publicclassFoo{@CollectionOfElementsprivateSetbarSet=newHashSet();//gettersandsettershere...}和publicenumBar{A,B}是否有一个HQL语句我可以用来只获取barSet包含Bar.B的Foo实例?Listfoos=session.createQuery("fromFooasfoo"+"wherefoo.barSet.contains.Bar.B").list();或者我是否一

java - 如何检查方法是否在 Java 中返回 Collection<Foo>?

我想根据方法的签名检查接口(interface)中是否存在方法。该方法应具有的签名是:CollectionmethodName(Spamarg0,Eggsarg1,...)我可以通过Class.getMethods()找到方法然后用method.getName()分别找到名称、参数和返回类型,method.getParameterTypes()和method.getReturnType().但是我要将返回类型与什么进行比较以确保只有返回Collection的方法被选中,而不是其他集合?method.getReturnType().equals(Collection.class)因为以上

Java 泛型 : Obtaining a Class<Collection<T>>?

我在使用泛型时遇到问题。给定以下示例:classA{publicA(ClassmyType){}}classBextendsA>{publicB(ClassmyEType){super(???);}}什么???应该?Collection.class不工作...Collection.class两者都不。(Class>)Collection.class不工作...如果有java泛型大师,我需要帮助...:/ 最佳答案 你不可能得到Class>除了Collection.class,因为类型删除。你必须使用不安全的转换来转换Collecti

java - 在 Collection 中保存表行有什么好处?

我见过一些Java代码,其中数据库表中的行被保存在一个集合中(通常是ArrayList或HashMap)。这种方法有什么好处?如何使集合和表保持同步?为什么不为每次检索向数据库发送查询?这是一个好的做法吗? 最佳答案 好处是性能。查询数据库是资源和时间密集型的。如果您的表足够小,您可以将项目保存在内存中,那么简单地引用本地内存会快几个数量级。就保持同步而言,这是一个更困难的答案,并且取决于用例。在大多数情况下,除非您设置了一些良好的自定义架构,否则无法保证一旦您将数据库和内存中的集合检索到内存中,它们就会同步。如果您想要采用这种方法

java - 使用 Collections.sort() 时,它排序并打印哈希码

这个问题在这里已经有了答案:HowdoIprintmyJavaobjectwithoutgetting"SomeType@2f92e0f4"?(13个答案)关闭7年前。我正在处理一个示例,其中它使用ArrayList包含新实例并使用Collections.sort()方法使用可比较的接口(interface)。我不知道为什么它在排序时会打印出哈希码,也不知道我的代码中的错误在哪里。任何人都可以找出错误并详细解释我。SortFruitObject.javaimportjava.util.*;publicclassSortFruitObject{publicstaticvoidmain(S

Java 流 : Organize a collection into a map and select smallest key

我很确定这在一行中是不可能的,但我只是想检查一下:ListselectedItems=null;Map>itemsByStockAvailable=WidgetItems.stream().collect(Collectors.groupingBy(WidgetItem::getAvailableStock));selectedItems=itemsByStockAvailable.get(itemsByStockAvailable.keySet().stream().sorted().findFirst().get());基本上,我将所有小部件项目收集到一个映射中,其中键是avail