英文:
Add 10 names to array list and print them in reverse order using lamda expression
问题
这是我一直在尝试的代码:
public class Assignement2_java8 {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("infosys");
al.add("wipro");
al.add("tcs");
al.add("amazon");
al.add("microsoft");
al.add("google");
al.add("acctenture");
al.add("hcl");
al.add("flipkart");
al.add("apple");
al.forEach(n -> System.out.println(new StringBuilder(n).reverse()));
}
}
我知道我可以使用一个单词数组,然后将其存储在ArrayList中,但我想知道为什么我不能使用这个。
英文:
This is what I've been trying:
public class Assignement2_java8 {
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("infosys");
al.add("wipro");
al.add("tcs");
al.add("amazon");
al.add("microsoft");
al.add("google");
al.add("acctenture");
al.add("hcl");
al.add("flipkart");
al.add("apple");
al.forEach(n -> System.out.println(n.reverse()));
}
}
I know I can use an array of words then store it in ArrayList but I want to know why I can't use this.
答案1
得分: 0
// 添加10个名字到数组列表,并使用 lambda 表达式以逆序打印它们。
// ArrayList 没有逆序方法。创建一个接受 List 作为参数的自定义 Consumer。
Consumer<List<String>> reversePrint = lst -> {
for (int i = lst.size()-1; i >= 0; i--) {
System.out.println(lst.get(i));
}
};
reversePrint.accept(al); // 这里的 al 是你的 ArrayList
// 输出
// apple
// flipkart
// hcl
// acctenture
// google
// microsoft
// amazon
// tcs
// wipro
// infosys
// 如果你想要逐个打印每个字符串的逆序(与你的标题不同),可以像这样做。
al.forEach(n -> System.out.println(new StringBuilder(n).reverse()));
// 输出
// sysofni
// orpiw
// sct
// nozama
// tfosorcim
// elgoog
// erutnetcca
// lch
// trakpilf
// elppa
英文:
> Add 10 names to array list and print them in reverse order using lamda expression.
ArrayList does not have a reverse method. Create your own Consumer
that takes a List
as an argument.
Consumer<List<String>> reversePrint = lst-> {
for (int i = lst.size()-1; i >= 0; i--) {
System.out.println(lst.get(i));
}
};
reversePrint.accept(al);
Prints
apple
flipkart
hcl
acctenture
google
microsoft
amazon
tcs
wipro
infosys
If you want to print each string in reverse (which is different than what your title says), then you can do it like this.
al.forEach(n -> System.out.println(new StringBuilder(n).reverse()));
Prints
sysofni
orpiw
sct
nozama
tfosorcim
elgoog
erutnetcca
lch
trakpilf
elppa
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论