JAVA排序,从小到大的Vector
来源:互联网 发布:windows phone 10微信 编辑:程序博客网 时间:2024/05/22 19:02
最近在项目中用到Vector,但是需要去排序,第一种方法可以去重写Comparator,在这个方法中去实现该对象中具体值得比较。代码如下:
public class MyCompare implements Comparator {public int compare(Object o1, Object o2) {Elem e1 = (Elem) o1;Elem e2 = (Elem) o2;if (e1.get() > e2.get())// 这样比较是降序,如果把-1改成1就是升序.{return 1;} else if (e1.get() < e2.get()) {return -1;} else {return 0;}}}通过重写比较方法后,调用JAVA自身函数。java.util.Arrays.sort(vector,compare);.通过这个方法就可以排序。这也是很通用的。
由于我代码不能满足传值的需要,因为不是对象中的比较,是通过方法调用,比较出大小去排序。采用如下方法:
Vector<Elem> numbers = new Vector<Elem>();// Vector<Integer> numbers1 = new Vector<Integer>();numbers.add(new Elem(1));numbers.add(new Elem(22));numbers.add(new Elem(3));numbers.add(new Elem(14));Elem[] arr = new Elem[numbers.size()];numbers.copyInto(arr);Elem[] str = getSort(arr);for (int i = 0; i < str.length; i++) {System.out.println(str[i].get());}上面是主方法。首先是将Vector转换为数组,通过调用Vector.copyInfo().将Vector转换为数组,然后再用冒泡排序,去找到最小的值,然后交换。代码如下:
public static Elem[] getSort(Elem[] keys) {for (int i = 0; i < keys.length - 1; i++) {for (int j = 0; j < keys.length - i - 1; j++) {Elem pre = keys[j];Elem next = keys[j + 1];if (pre.get() > next.get()) {Elem temp = pre;keys[j] = next;keys[j + 1] = temp;}}}return keys;}通过这样两种方式可以满足去排序的问题了。
阅读全文
0 0
- JAVA排序,从小到大的Vector
- 单链表的数据从小到大排序
- 排序 从小到大。
- 从小到大排序
- 从小到大排序
- 从小到大排序
- 从小到大排序
- 从小到大排序
- java冒泡排序(从小到大、从大到小)
- [java]冒泡算法:让数字从小到大排序
- 堆排序的Java实现(用最大堆实现从小到大排序)
- 如何解决数组的从小到大的排序
- 如何解决数组的从小到大的排序
- 给4个数从小到大的排序
- 算法,求从小到大排序的1500个丑数
- 字符串类型的数字从小到大排序方法
- 将输入的十个整数从小到大排序
- 写一个数组从小到大的排序
- SQL注入之POST型常规注入
- <Linux>Ubuntu-gcc编译器无法编译sqrt函数和aqrtf函数的解决方法以及sqrt和aqrtf函数的区别
- 5-10 公路村村通 (Kruskal+并查集)
- java 百钱买百鸡
- 使用notepad++ 安装NppFTP 远程连接Linux
- JAVA排序,从小到大的Vector
- ubuntu下php的编译安装与部署
- maven-常用plugin备忘
- 共享经济其实很“自私”,区块链技术想给它一条出路
- Python6:oriented objective programming
- 使用反射调用一个类的方法
- information_schema中Innodb相关表用于分析sql查询锁的使用情况介绍
- 用Tensorflow实现CNN文本分类(详细解释及TextCNN代码解释)
- 影响相机图像质量的因素-镜头