Java 如何转换集合<;数量>;收集<;整数>;安全?

Java 如何转换集合<;数量>;收集<;整数>;安全?,java,collections,numbers,integer,Java,Collections,Numbers,Integer,我有收藏但我需要收藏 我怎样才能安全地转换它 更常见的问题是: 如何将集合转换为集合您可以使用类似于以下转换方法的方法进行转换- public static Collection<Integer> convert(Collection<Number> in) { List<Integer> al = new ArrayList<Integer>(); for (Number n : in) { if (n != null) {

我有
收藏
但我需要
收藏

我怎样才能安全地转换它

更常见的问题是:


如何将
集合
转换为
集合

您可以使用类似于以下转换方法的方法进行转换-

public static Collection<Integer> convert(Collection<Number> in) {
  List<Integer> al = new ArrayList<Integer>();
  for (Number n : in) {
    if (n != null) {
      al.add(n.intValue());
    }
  }
  return al;
}
公共静态集合转换(集合中){
List al=新的ArrayList();
用于(编号n:in){
如果(n!=null){
添加(n.intValue());
}
}
返回al;
}
您可以试试这个

    Collection<Number> numbers = ...
    Collection<Integer> integers = numbers.getClass().newInstance();
    for(Number n : numbers) {
        integers.add(n == null ? null : n.intValue());
    }
集合编号=。。。
集合整数=numbers.getClass().newInstance();
用于(编号n:编号){
add(n==null?null:n.intValue());
}

您可以使用
instanceof
操作符。试试这个

Iterator<Number> itr = collection.iterator();
 while(itr.hasNext()) 
 {
       Number number = itr.next();
       if(number instanceof Integer)
       {
             Integer value = (Integer)number ;
             System.out.print("Integer is "+value );
       }

  }
Iterator itr=collection.Iterator();
while(itr.hasNext())
{
Number=itr.next();
if(整数的数字实例)
{
整数值=(整数)个数;
系统输出打印(“整数为”+值);
}
}

对于每个循环,迭代具有任何数值数据类型的集合,然后分别插入将这些数值数据类型转换为整数类型的集合到另一个集合中

List<Integer> i =  new ArrayList<Integer>();
for (Number n : in){
i.add(n.intValue()); 
}}
List i=new ArrayList();
用于(编号n:in){
i、 添加(n.intValue());
}}
示例包括:

import com.google.common.base.Function;
导入com.google.common.collect.Collections2;
集合集合=。。。
return Collections2.transform(集合,新函数(){
@可空
@凌驾
公共整数应用(@Nullable Number input){
如果(输入==null){
返回null;
}
返回input.intValue();
}
});

注意:番石榴是一个外部库,您需要导入它。

foreach
loop或番石榴
Collections2.transform(collection,function)
。。。。或者开始使用Java8早期访问:)
in.stream().map(n->n.intValue()).collect(intoList())
Arnaud Denoyelle我需要在函数中编写什么?@gstackoverflow您需要一个番石榴函数:Arnaud Denoyelle,如果您编写代码示例,我将非常高兴。
import com.google.common.base.Function;
import com.google.common.collect.Collections2;

Collection<Number> collection = ...
return Collections2.transform(collection, new Function<Number, Integer>() {
  @Nullable
  @Override
  public Integer apply(@Nullable Number input) {
    if(input == null) {
      return null;
    }
    return input.intValue();
  }
});