If I wanted to make a custom implementation of a Queue is correct to
say that I can choose whatever order I want (not FIFO) but I must always
respect the fact that the element to remove is that positioned as “head”?
but for insertion operation I’m not obliged to put the element to the tail (like into FIFO)?
You are correct. The javadoc clearly states this: