java – 在集合上调用方法以添加到另一个集合
发布时间:2020-12-15 04:10:37 所属栏目:Java 来源:网络整理
导读:我必须继续编写比我想要的更长的代码,而且我必须做很多次. CollectionMiClase collection1 = new ArrayListMiClase;CollectionString collection2 = new ArrayListString;// I currently do thisfor (MiClase c : collection1){ collection2.add(c.nombre())
我必须继续编写比我想要的更长的代码,而且我必须做很多次.
Collection<MiClase> collection1 = new ArrayList<MiClase>; Collection<String> collection2 = new ArrayList<String>; // I currently do this for (MiClase c : collection1){ collection2.add(c.nombre()); // nombre() returns String } 有什么东西可以缩短它吗? // I want something like collection2.addAll(collection1,MiClase.nombre); 解决方法
没有内置的java函数可以做到这一点1.你可以用Guavas’
Collections2#transform(collection,function)‘
所以,你的代码看起来像 // nombres = collections2,miClasses = collection1 nombres.addAll(Collections2.transform(miClasses,new Function() { @Override public String apply (MiClasse miClasse) { return miClasse.nombre(); } })); 但这真的很麻烦,只是删除一个简单的循环可能是一种过度杀伤. 编辑 1 – 正如A.R.S.所指出的,在Java 8 lambda表达式和改进的集合API之前没有内置.链接有一些很酷的例子:http://www.javabeat.net/2012/05/enhanced-collections-api-in-java-8-supports-lambda-expressions/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – ActiveMQ Web控制台不适用于嵌入式代理
- java – 从application.properties Spring Boot读取值
- java – 无论应用程序如何启动,都可以找到conf文
- java – PrimeFaces 3.0 – 当树在a中时节点选择中的异常
- 获取当前app的签名信息
- 在Live服务器上托管java webservice
- java – 如何改进应用程序以避免堆空间问题
- java – Bitwise op意外地变为负面
- javafx8 TableView Multiselection将所选项之一返回为null
- java – 如何缩放WebView显示SVG到固定的像素高度?