如何在两个ArrayList间传递值?提取对象字符串字段存入目标ArrayList
解决方案:提取Tipologia对象的字符串字段到ArrayList
没问题,这其实很容易实现,我给你几种常用的方式,适配不同的Java版本和编码习惯:
方法1:传统for循环
如果你的项目还在使用较老的Java版本(Java 5之前),或者需要用到索引操作,可以用这种方式:
ArrayList<Tipologia> arraySpinner = Articolo.CaricamentoTipologie(); ArrayList<String> arrayTemp = new ArrayList<String>(); for (int i = 0; i < arraySpinner.size(); i++) { Tipologia tipologia = arraySpinner.get(i); // 调用GetNomeTipologia()获取字符串字段并添加到arrayTemp arrayTemp.add(tipologia.GetNomeTipologia()); }
方法2:增强for循环(foreach)
Java 5及以上版本推荐这种写法,代码更简洁易读:
ArrayList<Tipologia> arraySpinner = Articolo.CaricamentoTipologie(); ArrayList<String> arrayTemp = new ArrayList<String>(); for (Tipologia tipologia : arraySpinner) { arrayTemp.add(tipologia.GetNomeTipologia()); }
方法3:Java 8+ Stream API
如果你的项目使用Java 8或更高版本,Stream API能让代码更优雅简洁:
import java.util.stream.Collectors; ArrayList<Tipologia> arraySpinner = Articolo.CaricamentoTipologie(); // 直接通过Stream转换并收集为ArrayList ArrayList<String> arrayTemp = arraySpinner.stream() .map(Tipologia::GetNomeTipologia) // 映射每个Tipologia对象到它的Nome字段 .collect(Collectors.toCollection(ArrayList::new));
如果不需要严格的ArrayList类型,用Collectors.toList()会更简便(返回的是List接口实现):
List<String> arrayTemp = arraySpinner.stream() .map(Tipologia::GetNomeTipologia) .collect(Collectors.toList());
小提示
要注意如果arraySpinner里可能存在null元素,调用GetNomeTipologia()会抛出NullPointerException,可以添加过滤逻辑避免这种情况:
import java.util.Objects; ArrayList<String> arrayTemp = arraySpinner.stream() .filter(Objects::nonNull) // 过滤掉null的Tipologia对象 .map(Tipologia::GetNomeTipologia) .collect(Collectors.toCollection(ArrayList::new));
内容的提问来源于stack exchange,提问作者riki
相关产品推荐
相关产品推荐

