JAVA通过数组按首字母排序怎么做?

Python012

JAVA通过数组按首字母排序怎么做?,第1张

自己封装的一个工具类,可以将汉字按照拼音的首字母排序,支持对Model和字典排序.只能对首字母排序,不支持第二个字母, 实现的原理就是创建一个A-Z的数组,数组中的元素是字典,字典中有两个元素,一个是title,就是当前的首字母 A-Z中的一个,另一个是保存当前title对应的元素的数组,对传入的数组进行遍历获得数组中的一个元素,如果是Model或者字典通过传入的key的值获得要排序的字符串,获得字符串的拼音的首字母,判断拼音的首字母是A-Z中的哪一个,然后放到数组中的对应的字典的数组中.

后来又做了一个对英文的首字母排序的程序,原理和上面的一样,还省略了将汉字转化为拼音的步骤。工具类的名称是:NH_OrderByPinYinFirstLetter。

代码:使用的时候直接调用下面的方法就行,是一个加号方法,第一个参数是保存要排序的元素的数组,第二个参数:如果数组中是Model或者字典,就写排序的依据的key值,如果数组中不是Model或字典,就写nil。

[objc] view plain copy

// 方法

+ (NSMutableArray *)baseOrderPinYinOnArr:(NSMutableArray *)arr ByKey:(NSString *)key  返回值的类

// 返回一个有24个元素的数组,数组里的元素是字典

// 字典里有两对键值对

//    title : 当前的拼音首字母 A - Z

// datas : 当前的拼音首字母对应的model所组成的数组

JAVA 中数组的几种排序方法:

1、数组的冒泡排序

[java] view plaincopyprint?

public void bubbleSort(int a[]) {

int n = a.length

for (int i = 0i <n - 1i++) {

for (int j = 0j <n - 1j++) {

if (a[j] >a[j + 1]) {

int temp = a[j]

a[j] = a[j + 1]

a[j + 1] = temp

}

}

}

}

2、数组的选择排序

[java] view plaincopyprint?

public void selectSort(int a[]) {

for (int n = a.lengthn >1n--) {

int i = max(a, n)

int temp = a[i]

a[i] = a[n - 1]

a[n - 1] = temp

}

}

3、数组的插入排序

[java] view plaincopyprint?

public void insertSort(int a[]) {

int n = a.length

for (int i = 1i <ni++) { //将a[i]插入a[0:i-1]

int t = a[i]

int j

for (j = i - 1j >= 0 &&t <a[j]j--) {

a[j + 1] = a[j]

}

a[j + 1] = t

}

}

4、设置两层循环

[java] view plaincopyprint?

for(int i=0i<arrayOfInts.lengthi++)

{

for(int j=i+1j<arrayOfInts.lengthj++)

{

if(arrayOfInts[i]>arrayOfInts[j])

{

a=arrayOfInts[i]

arrayOfInts[i]=arrayOfInts[j]

arrayOfInts[j]=a

}

}

}

5、还有一种方法就是用Arrays.sort()方法:

[java] view plaincopyprint?

//导入包

import java.util.Arrays

public class Two3{

public static void main(String[]args)

{

int[]arrayOfInts={32,87,3,589,12,7076,2000,8,622,127}

Arrays.sort(arrayOfInts)

for(int i=0i<arrayOfInts.length-1i++)

{

System.out.print(arrayOfInts[i]+" ")

}

}