我有一副52张牌组成的数组。如何对数组中的项目进行排序
我想有一种方法,我可以在策略性放置卡后混合卡。
首先,我的牌分成数据包这样的:
Card[] packetOne = new Card[cards.length/2];
Card[] packetTwo = new Card[cards.length/2];
for (int i = 0; i < (cards.length/2); i++) {
packetOne[i] = cards[i];
}
for (int i = 0; i < packetTwo.length; i++) {
for (int c = cards.length/2; c < cards.length; c++) {
packetTwo[i] = cards[c];
}
}
现在,该卡分成两堆,我想卡在新数组排序,以便:在数据包中的第一张牌一个是第一个,然后是第二个包中的第一个卡,然后是第二个包中的第二个卡,然后是第二个包中的第二个卡等等,直到所有卡都完成为止。
此外,如果任何时候卡组中的卡片数量是奇数,则第一个数据包将比第二个数据包多一个卡,但是具有相同的排序思路。
有谁知道如何做这种类型的事情?
如果存在奇数张卡片,这仍然可以工作吗?如果有奇数,则第一个数据包应该比第二个数据包多一个卡 – user1664285
for中的第二个if语句将确保对于最终的卡,如果packetTwo为空而packetOne不是,则不会出现错误将被抛出。 –