如何解决如何使用迭代器Java替换列表中的值
因此,基本上,我正在编写一个简单的程序,用户输入一个字符串,然后将该字符串转换为一个列表,在列表中,倒数第二个元素都将替换为最后一个。
所以如果程序输入 a b c a b c 程序输出 a c c a c
到目前为止,这是我得到的,但是由于某种原因,我一直想知道自己做错了什么,所以无法运行该程序。
public static void main(String args[])
{
Scanner input = new Scanner (System.in);
System.out.println("Enter in list");
String s = input.nextLine();
List<String> list = new ArrayList<String>(Arrays.asList(s.split(" ")));
String replacewith;
String replace;
replacewith = list.get(list.size()-1);
replace = list.get(list.size()-2);
Iterator<String> iterator = list.iterator();
int i = 0;
while(iterator.hasNext()) {
String value = iterator.next();
if(value.equals(replace))
{
iterator.remove();
list.add(i,replacewith);
}
i++;
}
System.out.println(list);
}
解决方法
您可以使用java8流来解决您的问题。
String replaceWith = "c";
String replace = "b";
System.out.println(Arrays.asList("a","b","c","a","c").stream()
.map(c -> c.equals(replace) ? replaceWith : c)
.collect(Collectors.toList()));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。