java - 游戏。字符串的顺序数组
问题描述
声明 游戏包括对他们给你的元素进行排序。总共有 8 个元素和 2 个孔。
您必须对它和无序数组匹配任何可能选项时的方法进行排序。
唯一的限制是您必须按 2 对 2 进行排序,也就是说,在每次迭代中,您必须同时移动两个元素。
我的代码:
boolean truee;
ArrayList<String> array = new ArrayList<String>(10);
array.add(0, "A");
array.add(1, "B");
array.add(2, "A");
array.add(3, "B");
array.add(4, "A");
array.add(5, "B");
array.add(6, "A");
array.add(7, "B");
array.add(8, null);
array.add(9, null);
System.out.print(array);
}
private static ArrayList<String> order(ArrayList<String> array) {
boolean istrue = true;
//...States
do {
}while(istrue);
return array;
}
我真的不知道如何制作函数以便它对数组进行排序。
this solution over paper.
A B A B A B A B 0 0
A 0 0 B A B A B B A
A A B B 0 0 A B B A
A A B B B B A 0 0 A
0 0 B B B B A A A A
解决方案
在这种情况下,您可以从java.util.Comparator
课程中受益。要按照您想要的方式对其进行排序,首先您必须使用以下函数处理空值:
Comparator.nullsFirst(...)
- 它将空值移动到列表的第一个位置。但它会给你一个自然的顺序。您的预期结果需要恢复,因此下一步将是使用该Comparator.reverseOrder()
功能 - 它会使“B”站在“A”之前。要使用所描述的运算符,请调用sort
列表中的方法。
示例用法:
list.sort(Comparator.nullsFirst(Comparator.reverseOrder()));
推荐阅读
- python - 在python中查找次要矩阵
- javascript - 如何按整数列对 json 对象进行排序,如“3”、“2”、“5”
- javascript - 使用 Karma 和 Jasmine 在订阅中测试 IF
- python - 我的系统中有 python 3.7 并且重做命令 ctrl +Y 在 python IDLE 中不起作用
- twitter-bootstrap - Boostrap 4.2.1 的 tinyMCE 自动调整大小插件问题
- python - 在Apache Spark(pyspark 2.4)的同一行中获取数据帧集合列表中的重复项
- virtualenv - 是否有特定于 venv 的等效于 virtualenvwrapper 的“后激活”
- regex - Perl - 从字符串中捕获特定数量的单词
- x86 - 在环之间跳转时的处理器行为
- include - 如何在 Forth 中包含 C 库