数组自定义排序、泛型
2017-06-22 11:40
225 查看
我们使用过数组,如
使用
遍历:
1、我们首先得写一个实现
从上面代码可以,看出我们进行了长度的比较。
2、现在来看
打印结果如下:
说明长度最小的排在了前面。
如果要长度最大的排在前面,我们只需要修改
上面我们在进行数组自定义排序的时候,其实IDE对我们已经进行了一个提示。这是告诉我们传进去的数据类型应该是一个泛型。
我们把
这样要求传的就是
在使用这个类对数组进行排序的时候,IDE也不会有”黄色”提示了。
这里,我们只是初步接触
String[] strs = {"xxx","aaa","kkkk"}
使用
sort()方法对数组排序:
Arrays.sort(strs);
遍历:
for (String s : strs){ System.out.println(s); }
sort()默认排序:如果是字符串默认安装字母从
a-z,如果是数字默认从小到大。
sort方法的第2个参数
Arrays.sort(strs,第2个参数) #第二个参数,可以传入一个类,来实现自定义排序,比如:按照数组元素长度排序
1、我们首先得写一个实现
Comparator的类
import java.util.Comparator; public class MyCompare implements Comparator { @Override public int compare(Object o1, Object o2) { String a = (String)o1; String b = (String)o2; if (a.length() > b.length()){ return 1; }else if (a.length() < b.length()){ return -1; } return 0; } }
从上面代码可以,看出我们进行了长度的比较。
2、现在来看
Arrays.sort方法如何使用到这个类:
// 数组 String[] names = {"zhangsan","lisi","wangwu","hanmeimei"}; // 排序 Arrays.sort(names, new MyCompare()); // 遍历输出 for (String s : names){ System.out.println(s); }
打印结果如下:
lisi wangwu zhangsan hanmeimei
说明长度最小的排在了前面。
如果要长度最大的排在前面,我们只需要修改
MyCompare这个类的
compare方法:
@Override public int compare(Object o1, Object o2) { String a = (String)o1; String b = (String)o2; if (a.length() > b.length()){ return -1; }else if (a.length() < b.length()){ return 1; } return 0; }
泛型的概念
上面我们在进行数组自定义排序的时候,其实IDE对我们已经进行了一个提示。这是告诉我们传进去的数据类型应该是一个泛型。
我们把
MyCompare类改造一下:
public class MyCompare implements Comparator <String> { @Override public int compare(String o1, String o2) { if (o1.length() > o1.length()){ return -1; }else if (o1.length() < o2.length()){ return 1; } return 0; } }
这样要求传的就是
String类型,我们就不必再转为String了。
在使用这个类对数组进行排序的时候,IDE也不会有”黄色”提示了。
// 排序 Arrays.sort(names, new MyCompare());
这里,我们只是初步接触
泛型这个概念
相关文章推荐
- List<T>泛型数组API自带的Sort() 排序方法根据自定义排序实现
- 如何实现自定义类对象数组的排序
- 七、使用泛型的 TArray 为动态数组排序
- 自定义类型数组排序的两种实现方式
- List泛型自定义类型排序和大小比较C#版
- JavaScript自定义数组排序
- 使用泛型技术排序数组JDK5.0
- 对数组中的自定义的类型根据姓名,年龄排序(升序, 降序)sortedArrayUsingSelector
- 针对数组中自定义的NSObject对象按照某个属性的排序
- 如何实现自定义类对象数组的排序
- LinQ 泛型方法Array>ForEach在数组中进行迭代并调用自定义的委托
- 自定义函数模板和泛型排序函数的使用
- 自定义的数组排序
- 泛型数组的排序
- php中数组自定义排序
- PHP经验——数组自定义排序之多维数组排序
- 使用泛型的 TArray 为动态数组排序
- 自定义规则排序数组的一个例子
- Javascript 自定义数组排序