重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
三大排序
创新互联建站长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为白沙黎族企业提供专业的成都网站制作、成都做网站,白沙黎族网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
import java.util.Arrays;
public class ArraySort {
public static void main(String[] args) {
int[] arr={43,21,40,35,87,15};
//选择排序
//choiceSort(arr);
//冒泡排序
//buddleSort(arr);
//插入排序
insertSort(arr);
}
public static void insertSort(int[] arr) {
//21,35,40, 43,87,15
for(int j=1;jarr.length;j++){
int tmp=arr[j];//35
int i=j-1; //i:2 1
/*for(;i=0;i--){
//i:2: 4335
//i:1: 4035
//i:0: 2135
if(arr[i]tmp){
arr[i+1]=arr[i];
}else{
break;
}
}*/
for(;i=0arr[i]tmp;i--){
arr[i+1]=arr[i];
}
arr[i+1]=tmp;
System.out.println(
"最终结果为:"+Arrays.toString(arr));
}
}
public static void buddleSort(int[] arr) {
System.out.println("排序前的结果为:"
+Arrays.toString(arr));
for(int j=0;j=arr.length-2;j++){
for(int i=0;i=arr.length-2-j;i++){
System.out.println("第"+i+"次交换前:"
+Arrays.toString(arr));
if(arr[i]arr[i+1]){
int tmp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=tmp;
}
System.out.println("第"+i+"次交换后:"
+Arrays.toString(arr));
}
System.out.println("排序的结果为:"
+Arrays.toString(arr));
}
}
public static void choiceSort(
int[] arr) {
for(int i=0;i=arr.length-2;i++){
for(int j=i+1; j=arr.length-1;
j++){
System.out.println("第"+
j+"次交换前:"+Arrays.toString(arr));
if(arr[i]arr[j]){
int tmp=arr[j];
arr[j]=arr[i];
arr[i]=tmp;
}
System.out.println("第"+
j+"次交换后:"+Arrays.toString(arr));
}
}
System.out.println("排序的结果为:"
+Arrays.toString(arr));
}
}
代码如下:
import java.util.Arrays;
class Circle {
private int radius;
public Circle(int radius) {
this.radius = radius;
}
public int getRadius() {
return radius;
}
public void setRadius(int radius) {
this.radius = radius;
}
@Override
public String toString() {
return "Circle [radius=" + radius + "]";
}
}
public class App {
public static void main(String[] args) throws CloneNotSupportedException {
// 创建一个包含5个元素的数组
Circle[] circles = { new Circle(2), new Circle(10), new Circle(8), new Circle(4), new Circle(12) };
System.out.println(Arrays.toString(circles));
// 排序
Arrays.sort(circles, (x, y) - Integer.compare(x.getRadius(), y.getRadius()));
System.out.println(Arrays.toString(circles));
// 查找半径为 9 的圆
int index = Arrays.binarySearch(circles, 9, (x, y) - ((Circle)x).getRadius() - (int)y);
System.out.println(index =0 ? circles[index] : "没有找到半径为 9 的圆。");
// 查找半径为 10 的圆
index = Arrays.binarySearch(circles, 10, (x, y) - ((Circle)x).getRadius() - (int)y);
System.out.println(index =0 ? circles[index] : "没有找到半径为 10 的圆。");
// 拷贝数组
Circle[] circles2 = Arrays.copyOf(circles, circles.length);
System.out.println(Arrays.toString(circles2));
}
}
如果是JTable.等java图形界面的组件,那么获取数据,赋值都比较简单.
但是看图片,是要写一个Excel的辅助功能, 这对java来说还是有点麻烦了.
最优建议:
Excel的功能. 那么最佳的建议,是使用vba 语言进行扩展.(微软出品,简单,方便,代码量极少) .
其次的建议:
C/C++ 键盘钩子 , 当读取到按键F9时 ,模拟键盘的复制粘贴等操作.
不推荐java , 但java也能勉强凑合解决这个问题:
因为java 很难获取系统底层的按键, Robot也很有局限, 比如窗口失去焦点的时候,读取不到F9按键. 所以java需要调用JNI c语言 比较繁琐. 比较简单的是调用JNA了,但代码量也不少.
当然了如果非要用java写,也可以,我手写了一个简单的JNA+Robot配合
效果图