【ThinkingInJava】46、把数组反序排列
来源:互联网 发布:ubuntu 离线安装jre 编辑:程序博客网 时间:2024/06/06 00:49
//: net/mindview/util/Generated.javapackage net.mindview.util;import java.util.*;public class Generated { // Fill an existing array: public static <T> T[] array(T[] a, Generator<T> gen) { return new CollectionData<T>(gen, a.length).toArray(a); } // Create a new array: @SuppressWarnings("unchecked") public static <T> T[] array(Class<T> type, Generator<T> gen, int size) { T[] a = (T[])java.lang.reflect.Array.newInstance(type, size); return new CollectionData<T>(gen, size).toArray(a); }} ///:~
package Lesson16Arrays;//: arrays/CompType.java// Implementing Comparable in a class.import java.util.*;import net.mindview.util.*;import static net.mindview.util.Print.*;public class CompType implements Comparable<CompType> { int i; int j; private static int count = 1;//静态的 public CompType(int n1, int n2) //构造函数,给两个私有成员赋值 { i = n1; j = n2; } public String toString() { String result = "[i = " + i + ", j = " + j + "]"; if(count++ % 3 == 0)//当个数恰好是3的倍数时候换行,并++,每输出一次就++ result += "\n"; return result; } public int compareTo(CompType rv) //sort函数会调用这个 { return (i < rv.i ? -1 : (i == rv.i ? 0 : 1));//要比较的对象的i比这个大的话,就返回-1 } private static Random r = new Random(47);//私有静态的,产生 public static Generator<CompType> generator() { return new Generator<CompType>() { public CompType next() { return new CompType(r.nextInt(100),r.nextInt(100));//在 0(包括)和指定值(不包括)之间均匀分布的 int 值 } }; } public static void main(String[] args) { CompType[] a = Generated.array(new CompType[12], generator());//后面那个参数每次调用的时候随机产生数据,用来初始化前面那个对象 print("before sorting:"); print(Arrays.toString(a)); Arrays.sort(a); print("after sorting:"); print(Arrays.toString(a)); }}
输出:
before sorting: obj1
[[i = 58, j = 55], [i = 93, j = 61], [i = 61, j = 29]
, [i = 68, j = 0], [i = 22, j = 7], [i = 88, j = 28]
, [i = 51, j = 89], [i = 9, j = 78], [i = 98, j = 61]
, [i = 20, j = 58], [i = 16, j = 40], [i = 11, j = 22]
] obj1
after sorting: obj1
[[i = 98, j = 61], [i = 93, j = 61], [i = 88, j = 28]
, [i = 68, j = 0], [i = 61, j = 29], [i = 58, j = 55]
, [i = 51, j = 89], [i = 22, j = 7], [i = 20, j = 58]
, [i = 16, j = 40], [i = 11, j = 22], [i = 9, j = 78]
] obj1
0 0
- 【ThinkingInJava】46、把数组反序排列
- 将一个数组快速反序排列
- 将一个数组快速反序排列
- 把数组排列成最小的数
- 把数组中的元素随机排列
- 把数组排列成最小的数
- ThinkingInJava
- 链表反序 排列
- 【ThinkingInJava】5、以Object数组作为参数
- 【ThinkingInJava】37、关于泛型数组
- 把一个int数组的数字从小到大排列(C#)(原创)
- C#把一个int数组的数字从小到大排列
- C#把一个int数组的数字从小到大排列
- 把一个int数组的数字从小到大排列(C#)
- [剑指offer]把数组排列成最小的数
- 剑指offer-把数组排列成最小的数
- 数组反序
- c#字符串反序排列方法
- Number of 1 Bits
- 黑马程序员-----------ios培训 oc内存管理(一)
- OC 使用 “消息结构”
- 【ThinkingInJava】45、用java标准库里面的静态函数调用,复制数组
- 破解TexturePacker加密资源 —— 使用IDA
- 【ThinkingInJava】46、把数组反序排列
- ubuntu清除多余内核
- C++获取文本文件字节数的一个小方法
- 安卓学习笔记——ActionBar的使用
- 系统是什么意思
- 在Ext JS Store用正则表达式过滤数据
- Raspberry Pi: Remote GUI access to a Linux computer using Tightvnc
- oracle游标详解与应用
- iterator usage