将数组排序为子数组

时间:2018-08-10 21:17:49

标签: java arrays sorting

我有一个字符串数组,该字符串包含3个我想排序的小节。参见下面的示例

String[] teams = new String[5];
teams[0] = "Header1";
teams[1] = "Candy";
teams[2] = "Apples";
teams[3] = "Fruit";
teams[4] = "Header2";
teams[5] = "Candy";
teams[6] = "ZZZ";
teams[7] = "Fruit"; 
teams[8] = "E";
teams[9] = "Header3";
teams[10] = "C";
teams[11] = "T";
teams[12] = "A";

我想对每个小节进行排序,同时保留Headers1-3。我是否应该根据已知条目(Headers1-3)将数组分解为3个子数组,而仅使用array.sort,还是我不知道有一种更简单的方法?请注意,我的字符串数组是固定长度的条目,并且每个Header处于已知位置(即Header 2始终位于位置4)。

1 个答案:

答案 0 :(得分:4)

我认为你快到了。使用Arrays.sort并指定索引似乎最简单。

public static void sort(int[] arr, int from_Index, int to_Index)

范围定义如下

  

要排序的范围从索引fromIndex(包括端值)到索引toIndex(不包括端值)。

在此示例中,使用以下代码:

Arrays.sort(teams,1,4);
Arrays.sort(teams,5,9);
Arrays.sort(teams,10,13);

for (String s : teams) {
    System.out.println(s);
}

产生以下输出:

Header1
Apples
Candy
Fruit
Header2
Candy
E
Fruit
ZZZ
Header3
A
C
T

我建议不要那样保留数据集,因为有更好的方法来组织数据,而不是将数据放入单个数组中。