我正在尝试将十进制值转换为二进制值,我已使用堆栈作为数据结构。当使用普通的堆栈弹出时,它以正确的顺序打印我,例如 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)
}