我试图在不使用预定义方法或数组列表的情况下对2d数组进行排序。
String[][] data = new String[][] {
new String[] {"bob","one"},
new String[] {"jack","two",},
new String[] {"adam","three"}
};
我想把这个定为
{"adam","three"},
{"bob","one"},
{"jack","two"},
我尝试了很多方法,成功地订购了第一个元素,但添加第二个元素没有成功。我不张贴我的工作,因为它是不成功的任何建议将不胜感激
如果您实际上是通过参考a-z之间字母的ASCII表值按字母顺序排序,则可以使用比较器来比较名称字符串。请注意小写字母及其值。字母“a”的值为97,“z”的值为122。如果使用比较器并比较名称的字符串,则只需确保将每个对象对(名称编号)放在列表中第一个对象之前或之后(bob,本例中为一个)。看看杰克,“字母j在b后面吗?”是的,放在鲍勃后面。这就是想法,这里有一个字符串比较器指南和一个从字符串中获取字符(您只需要第一个字符)。
尝试使用比较器
和数组 排序
:
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[][] data = new String[][] {
new String[] {"bob", "one"},
new String[] {"jack", "two"},
new String[] {"adam", "three"}
};
System.out.printf("Before: %s%n", Arrays.deepToString(data));
Arrays.sort(data, Comparator.comparing(a -> a[0]));
System.out.printf("After: %s%n", Arrays.deepToString(data));
}
}
如果这是不允许的,这里有一个冒泡排序的实现,作为不使用预定义方法的示例(您可能想用更高效的排序算法来代替它):
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[][] data = new String[][] {
new String[] {"bob", "one"},
new String[] {"jack", "two"},
new String[] {"adam", "three"}
};
System.out.printf("Before: %s%n", Arrays.deepToString(data));
bubbleSortByFirstElement(data);
System.out.printf("After: %s%n", Arrays.deepToString(data));
}
public static void bubbleSortByFirstElement(String[][] array) {
boolean changed;
do {
changed = false;
for (int a = 0; a < array.length - 1; a++) {
if (array[a][0].compareTo(array[a + 1][0]) > 0) {
String[] tmp = array[a];
array[a] = array[a + 1];
array[a + 1] = tmp;
changed = true;
}
}
} while (changed);
}
}
两个示例的输出:
Before: [[bob, one], [jack, two], [adam, three]]
After: [[adam, three], [bob, one], [jack, two]]
按列对数组进行排序,就像我想在这里对最后一行上的值进行排序一样,根据排序结果,同一行中其他列上的数字也可能会发生变化 例如
本文向大家介绍使用TreeMap在Java中对用户定义的对象进行排序,包括了使用TreeMap在Java中对用户定义的对象进行排序的使用技巧和注意事项,需要的朋友参考一下 要在Java中对用户定义的对象进行排序,代码如下- 示例 输出结果 名为Demo的类包含一个名为sort_objects的函数,该函数创建一个将整数和数组列表映射的哈希表。 它遍历这些值,并检查哪个是字符串,哪个是整数元素,并根
原数据: 根据arr数组里面的price字段排序 期望得到: 麻烦各位大佬帮我看看
本文向大家介绍C#使用linq对数组进行筛选排序的方法,包括了C#使用linq对数组进行筛选排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用linq对数组进行筛选排序的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍PHP使用array_fill定义多维数组的方法,包括了PHP使用array_fill定义多维数组的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用array_fill定义多维数组的方法。分享给大家供大家参考。具体分析如下: PHP中可以用多个array_fill嵌套完成多维数组的定义: 可用如下语句进行填充: 结果为: 希望本文所述对大家的php程序设计有所帮
尝试编写一个Python函数:def compare_lengths(x,y,z) 它接受三个数组作为参数,检查它们的长度,并按长度顺序将它们作为三个数组返回。 例如,如果函数接受[1,2,3]、[10,20,30,40]和[65,32,7]作为输入,则希望它返回([1,2,3]、[65,32,7]、[10,20,30,40])或([65,32,7]、[1,2,3]、[10,20,30,40])