I have this generic "matrix" holding elements of arbitrary type. It supports any horizontal or vertical rotations (of any step size) in \$\mathcal{O}(1)\$. See what I have: package net.coderodde.util; import java.awt.Canvas; import java.awt.Color; import java.awt.Dimension; import java.awt.Grap...