human: 编写一个Java程序，打印出一个数组的所有排列。
 bot: 我会编写一个函数，用于生成数组的所有排列。首先，我会定义一个函数，该函数接受一个数组作为参数，并将其分为两部分：第一个元素和剩余的元素。然后，我会使用循环来遍历剩余的元素，并将第一个元素与每个剩余元素交换位置。接下来，我会调用递归函数，将剩余元素作为参数传递给它。递归函数将继续将第一个元素与剩余元素交换位置，直到剩余元素为空。在每次递归调用中，我会将生成的排列保存到一个列表中。最后，我会遍历列表，并将每个排列打印出来。这样，我就可以打印出数组的所有排列了。