在阅读了关于流的内容后,我现在尝试使用它们,并且已经通过简单的示例出现了第一个问题。我想实现一个非常简单的加密算法,它使用替换。 有一些文本需要加密:
static List<Integer> text = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
有一些密码:
private List<Integer> password = Arrays.asList(1, 5, 7, 3);
现在的想法是将密码值添加到文本值中。结果应该是
1 + 1,2 + 5,3 + 7,4 + 3,5 + 1,6 + 5 ......
所以我必须从密码创建一个流,它从到达上面列表末尾的开头开始。这部分我已经成功了。
现在我不得不将2个流合并为1个流。任何想法,如何实现?
答案 0 :(得分:5)
我可能会在这里传输索引:
IntStream.range(0, text.size())
.map(i -> text.get(i) + password.get(i % password.size())
.toArray();
答案 1 :(得分:0)
这些是列表,您的结果也将是一个列表。
您创建了一个新的List crypt = new ArrayList();然后循环遍历文本列表,并为文本列表中的每个项添加密码列表索引中的值,该索引是文本列表中的索引%password.size();
List<Integer> crypt= new ArrayList<Integer>();
for(int index= 0;index=<text.size();index++){
crypt.add(text.get(index)+password.get(index % password.size());
}