1.数组的复制
public class ArrayTest4{
public static void main(String[] args){
String[] array1,array2;
array1=new String[]{"a","b","c","d"};
for(int i=0;i<array1.length;i++){
System.out.print(array1[i]+" ");
}
System.out.println();
//array2=array1;//不能称作数组的赋值,地址值相同,都指向堆空间中的唯一的一个数组实体
//将array1复制给array2
array2=new String[array1.length];
for(int i=0;i<array2.length;i++){
array2[i]=array1[i];
System.out.print(array2[i]+" ");
}
}
}
2.数组的反转
public class ArrayFanZhuan {
public static void main(String[] args){
String[] arr1=new String[]{"a","b","c","d","e"};
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]+" ");
}
System.out.println();
//数组的反转
for(int i=0;i<arr1.length/2;i++){
String temp;
temp=arr1[i];
arr1[i]=arr1[arr1.length-1-i];
arr1[arr1.length-1-i]=temp;
}
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]+" ");
}
}
}
3.数组的线性查找
public class XianXingChaZhao {
public static void main(String[] args){
String[] arr1=new String[]{"a1","b2","c3","d4","e5"};
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]+" ");
}
System.out.println();
//线性查找
String dest="c3";
boolean flag=true;
for(int i=0;i<arr1.length;i++){
if(dest.equals(arr1[i])){
System.out.println("找到了指定元素,位置为:"+i);
flag=false;
break;
}
}
if(flag==true){
System.out.println("没有找到指定元素");
}
}
}
4.数组的二分法查找
前提:所要查找的数组必须有序
public class ErFenFaChaZhao {
public static void main(String[] args){
int[] arr1=new int[]{-98,-31,2,34,56,78,99};
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i]+" ");
}
System.out.println();
//二分法查找
//前提:所要查找的数组必须有序
int head=0;//首索引位置
int end=arr1.length-1;//尾索引位置
int dest=16;
boolean flag=true;
while(end>=head){
int middle=(head+end)/2;
if(dest>arr1[middle]){
head=middle+1;
}else if(dest<arr1[middle]){
end=middle-1;
}else{
System.out.println("找到指定的元素,位置为"+middle);
flag=false;
break;
}
}
if(flag){
System.out.println("找不到指定的元素");
}
}
}