数组的排序:在Java中,排序有几种方法,插入排序、选择排序、冒泡排序、快速排序方法,现在jdk中本身就提供了一个数组排序的方法。Arrays类中提供了一个sort方法进行数组的排序。
package com.boc;
import java.util.Arrays;
public class JavaDemo16 {
public static void main(String[] args) {
int x[] = {30,12,34,56,1};
System.out.println("=====排序前=====");
for (int i = 0; i < x.length; i++) {
System.out.print(x[i]+"\t");
}
System.out.println();
Arrays.sort(x);//进行排序
System.out.println("=====排序后=====");
for (int i = 0; i < x.length; i++) {
System.out.print(x[i]+"\t");
}
}
}
数组的查找:
·普通的查找方法
·二分查找(折半查找)
普通查找:
package com.boc;
import java.util.Arrays;
public class JavaDemo16 {
public static void main(String[] args) {
int x[] = {30,12,34,56,1};
int y = 2;
for (int i = 0; i < x.length; i++) {
if(x[i] == y){
System.out.println("查找成功,对应数组下标为:" + i);
return;//接收次方法的运行
}
}
System.out.println("查找失败");
}
}
二分查找:前提是数组已经排序的,是效率最高的查找方式:
package com.boc;
import java.util.Scanner;
public class JavaDemo17 {
public static void main(String[] args) {
int x[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14};
Scanner sc = new Scanner(System.in);//扫描键盘的输入
System.out.print("请输入查找的数字:");
int y = sc.nextInt();//表示接收键盘输入的数字
int left = 0;
int right = x.length - 1;
while(left<=right){//表示如果left小于等于right的话,还可以进行查找
int midden = (left+right)/2;
if(y>x[midden]){
left = midden +1;
}else if(y<x[midden]){
right = midden - 1;
}else if(y == x[midden]){
System.out.println("查找成功,对应数组的下标为:" + midden);
return;
}
}
System.out.println("查找失败");
}
}
多维数组:以上的程序都是使用的一维数组,在以后的开发中可能会遇到多维数组的情况,现在就简单的讲一下二维数组。
package com.boc;
public class JavaDemo18 {
public static void main(String args[]){
int x[][] = {{1,2,3},{2,3,4},{3,4,5}};
for (int i = 0; i < x.length; i++) {
int y[] = x[i];//使用数组接收元素
for (int j = 0; j < y.length; j++) {
System.out.print(y[j]+"\t");
}
System.out.println();
}
}
}
或者:
package com.boc;
public class JavaDemo18 {
public static void main(String args[]){
int x[][] = {{1,2,3},{2,3,4},{3,4,5}};
for (int i = 0; i < x.length; i++) {
for (int j = 0; j < x[i].length; j++) {
System.out.print(x[i][j]+"\t");
}
System.out.println();
}
}
}
数组的复制:在Java中,提供了数组复制的方法
public static void arraycopy(Object src,int srcPros,Object dest,int destPros,int length) |
Object src:复制的源数组
intProcs:源数组的下标
Object dest:目标数组
int destPros:目标数组的下标
int length :复制的长度
package com.boc;
public class JavaDemo19 {
public static void main(String args[]){
int x[] = {1,2,3,4,5};//源数组,下标为2
int y[] = {11,12,13,14,15};//目标数组,下标为1
// y[] = {11,3,4,5,15};//复制的长度为3
System.arraycopy(x, 2, y, 1, 3);//进行数组的复制
for (int i = 0; i < y.length; i++) {
System.out.print(y[i]+"\t");
}
}
}