小编Son*_*ain的帖子

在 lambda 中使用堆栈时正在打印 FIFO

我正在尝试将十进制值转换为二进制值,我已使用堆栈作为数据结构。当使用普通的堆栈弹出时,它以正确的顺序打印我,例如 4 的二进制转换将为 100。但我是 java 8 的新手,并尝试尽可能多地使用 lambda 来学习,并在执行过程中,我意识到它打印 FIFO ex for 4 它正在打印 001。请找到下面的代码并让我知道我哪里做错了。

package com.interview.random;

import java.util.Stack;

public class ConvertDecimalToBinary {

public Stack<Integer> convertToBinary(int num){
    Stack<Integer> st=new Stack<>();
    while(num>1){
        st.push(num%2);
        num=num/2;
    }
    st.push(num);
    return st;
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

    Stack<Integer> st=new ConvertDecimalToBinary().convertToBinary(4);

    //printing correctly
    while(!st.isEmpty()){
        System.out.println(st.pop());
    }

    //Printing in FIFO not correct 
    st.forEach(i->System.out.println(i));
}
Run Code Online (Sandbox Code Playgroud)

}

lambda java-8

1
推荐指数
1
解决办法
257
查看次数

标签 统计

java-8 ×1

lambda ×1