草庐IT

immutable-collections

全部标签

Java Commons Collections removeAll

CollectionUtils::removeAll()CommonsCollections3.2.1我一定要疯了,因为这种方法似乎与文档状态相反:Removestheelementsinremovefromcollection.Thatis,thismethodreturnsacollectioncontainingalltheelementsincthatarenotinremove.这个小小的JUnit测试@TestpublicvoidtestCommonsRemoveAll()throwsException{Stringstr1="foo";Stringstr2="bar";S

java - API java 5 及更多 : should I return an array or a Collection?

本着BestPractices:Alwaysreturna____,nevera____的精神,我在即将发布的migrationfromJDK1.4.2toJDK5andmore中遇到了类似的问题.(是的,我知道,JDK1.4.2isEOL!;-))。对于返回集合的函数(不是简单的propertycollections),我总是更喜欢(在JDK1.4.2中)返回Array而不是泛型List,因为:它强制返回类型(MyObject[]而不是对象列表,更多的是type-safe在静态-如在“编译”-级别)它建议在返回的集合中添加一个“只读”字符(将元素添加到集合中会更复杂,尽管这不像“只读

java - API java 5 及更多 : should I return an array or a Collection?

本着BestPractices:Alwaysreturna____,nevera____的精神,我在即将发布的migrationfromJDK1.4.2toJDK5andmore中遇到了类似的问题.(是的,我知道,JDK1.4.2isEOL!;-))。对于返回集合的函数(不是简单的propertycollections),我总是更喜欢(在JDK1.4.2中)返回Array而不是泛型List,因为:它强制返回类型(MyObject[]而不是对象列表,更多的是type-safe在静态-如在“编译”-级别)它建议在返回的集合中添加一个“只读”字符(将元素添加到集合中会更复杂,尽管这不像“只读

java - Java中不可变对象(immutable对象)的缺点?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭3年前。ImprovethisquestionJava中不可变对象(immutable对象)的优势似乎很明显:一致的状态自动线程安全简单您可以通过使用私有(private)final字段和构造函数注入(inject)来支持不变性。但是,在Java中偏爱不可变对象(immutable对象)有什么缺点?即与ORM或Web演示工具不兼容?设计不灵活?实现复杂性?是否可以设计一个主要使用不可变对象(immutable对象)的大规模系统(深度对

java - Java中不可变对象(immutable对象)的缺点?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭3年前。ImprovethisquestionJava中不可变对象(immutable对象)的优势似乎很明显:一致的状态自动线程安全简单您可以通过使用私有(private)final字段和构造函数注入(inject)来支持不变性。但是,在Java中偏爱不可变对象(immutable对象)有什么缺点?即与ORM或Web演示工具不兼容?设计不灵活?实现复杂性?是否可以设计一个主要使用不可变对象(immutable对象)的大规模系统(深度对

今天又get到一个小技能,collect_set函数

collect_set函数今天又get到一个小技能,掌握了hive一个关于列转行专用函数collect_set函数。在这里做个学习笔记。collect_set是Hive内置的一个聚合函数,结果返回一个消除了重复元素的对象集合,其返回值类型是array。和collect_set相似的还有另一个函数collect_list,这个我们后面再谈。在实际应用中,我们可能会遇到需要类似这样的一个需求,就是需要查出各个品牌对应的所有分类,品牌分类表数据结构大概是这样的:brand_name,brand_classify品牌1家电品牌1家具品牌1数码品牌2空调品牌2饮水机期望的结果是:品牌1家电,家具,数码品

java - Mockito 和 Hamcrest : how to verify invocation of Collection argument?

我遇到了Mockito和Hamcrest的泛型问题。请假设如下界面:publicinterfaceService{voidperform(Collectionelements);}还有下面的测试片段:Serviceservice=mock(Service.class);//...performbusinesslogicverify(service).perform(Matchers.argThat(contains("a","b")));所以我想验证我的业务逻辑是否真的使用包含“a”和“b”的集合来调用服务。但是,contains(...)的返回类型是Matcher>,所以Matche

java - Mockito 和 Hamcrest : how to verify invocation of Collection argument?

我遇到了Mockito和Hamcrest的泛型问题。请假设如下界面:publicinterfaceService{voidperform(Collectionelements);}还有下面的测试片段:Serviceservice=mock(Service.class);//...performbusinesslogicverify(service).perform(Matchers.argThat(contains("a","b")));所以我想验证我的业务逻辑是否真的使用包含“a”和“b”的集合来调用服务。但是,contains(...)的返回类型是Matcher>,所以Matche

java - 为什么 HashMap 中的不可变对象(immutable对象)如此有效?

所以我读到了HashMap.有人指出:"ImmutabilityalsoallowscachingthehashcodeofdifferentkeyswhichmakestheoverallretrievalprocessveryfastandsuggestthatStringandvariouswrapperclasses(e.g.,Integer)providedbyJavaCollectionAPIareverygoodHashMapkeys."我不太明白……为什么? 最佳答案 String#hashCode:privatei

java - 为什么 HashMap 中的不可变对象(immutable对象)如此有效?

所以我读到了HashMap.有人指出:"ImmutabilityalsoallowscachingthehashcodeofdifferentkeyswhichmakestheoverallretrievalprocessveryfastandsuggestthatStringandvariouswrapperclasses(e.g.,Integer)providedbyJavaCollectionAPIareverygoodHashMapkeys."我不太明白……为什么? 最佳答案 String#hashCode:privatei