import java.util.Arrays;
public class Arraylianxi {
public static void main(String[] args) {
System.out.println("数组练习");
int[][] arr =new int[][]{{3,5,8},{12,9},{7,0,6,4}};
int num=0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
num+=arr[i][j];
}
}
System.out.println("总和"+num);
int[] array1,array2;
array1 =new int[]{2,3,5,7,11,13,17,19};
for (int i = 0; i < array1.length; i++) {
System.out.print(array1[i]+"\t");
}
//只是把地址给了 array2了
//不能称作数组的赋值
array2 =array1;
//怎么复制呢
array2 = new int[array1.length];
for (int i = 0; i < array1.length; i++) {
array2[i]=array1[i];
}
for (int i = 0; i < array2.length; i++) {
if(i%2==0) {
array2[i]=i;
}
}
System.out.println();
for (int i = 0; i < array1.length; i++) {
System.out.print(array1[i]+"\t");
}
//线性查找
String dest="BB";
String[] arrDest=new String[]{"AA","BB","CC","DD","EE"};
for (int i = 0; i < arrDest.length; i++) {
if(dest.equals(arrDest[i])) {
System.out.println("找到了,位置为"+i);
break;
}
}
//二分法查找
//前提 所有查找的数组必须有序
int[] arrInt=new int[]{1,2,1,-3,32,321,321};
int dest1=-3;
int head=0;
int end =arrInt.length-1;
while (head<=end) {
int middle= (head+end)/2;
if(dest1==arrInt[middle]) {
System.out.println("找到了,位置为"+middle);
break;
}else if(arrInt[middle]>dest1) {
end = middle -1;
}else {
head=middle+1;
}
}
//冒泡排序
int[] arrInt3=new int[]{1,3,4,5,7,9,321,321,543,3,523,1231,31321};
for (int i = 0; i < arrInt3.length-1; i++) {
for (int j = 0; j < arrInt3.length-1-i; j++) {
if(arrInt3[j]>arrInt3[j+1]) {
int temp=arrInt3[j];
arrInt3[j]=arrInt3[j+1];
arrInt3[j+1]=temp;
}
}
}
for (int i = 0; i < arrInt3.length; i++) {
System.out.print(arrInt3[i]+",");
}
//数组的工具类
//java.util.Arrays 包下
//判断两个数组是否相等 equals
int[] arrInt4=new int[]{1,2,1,-3,32,321,321};
boolean isEquqs=Arrays.equals(arrInt4,arrInt);
System.out.println(isEquqs);
//输出数组信息 toString
System.out.println(Arrays.toString(arrInt4));
//将指定的值填充到数组当中
Arrays.fill(arrInt4, 5); //把数组里的所有的值都替换成 第二个参数
System.out.println(Arrays.toString(arrInt4));
//对数组进行排序
Arrays.sort(arrInt3); //从小到大排序
System.out.println(Arrays.toString(arrInt3));
//二分查找 一定要有序
int[] arrInt5=new int[]{1,3213,4,3215,7,9,332121,321321,543,3,523,1231,31321};
//找到相对应的值
int index= Arrays.binarySearch(arrInt5, 523);
//返回值 如果为负 的说明没找到
if(index<0) {
System.out.println("找到了");
}else {
System.out.println("未找到");
}
//数组中的常在异常
//数组下标越界的异常 ArrayIndexOutOfBoundsException
int[] arrInt6=new int[]{1,3213,4};
// System.out.println(arrInt6[6]);异常
// try {
// System.out.println(arrInt6[6]);
// } catch (ArrayIndexOutOfBoundsException e) { //抛出异常
// // TODO: handle exception
// System.out.println(e);
// }
//空指针的异常 NullPointerException
// 情况一
int[] arrInt7=new int[]{1,2,4};
arrInt7=null;
// System.out.println(arrInt7[0]);//异常
//情况二
int[][] arr8=new int[4][];
System.out.println(arr8[0]); //返回null
// System.out.println(arr8[0][0]); //异常
//情况三
String[] arrstr=new String[]{"aa","bb"};
arrstr[0]=null;
// System.out.println(arrstr[0].toString()); 通过null调用数据 就会出现空指针
}
}
java数组详解
原创
©著作权归作者所有:来自51CTO博客作者json____的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:JAVA数组的详解
下一篇:JAVA 面向对象的详解
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java 中数组的使用(一维数组和二维数组)
本文详细的介绍了,在Java 中数组的使用,并对其内存存在形式进行了详细的分析。
数组 一维数组 二维数组 java基础 -
java 数组详解
Java 语言中提供的数组是用来存储固定大小的同类型元素。 你可以声明一个数组变量,如
java 数组 System i++ -
Apache Kafka 3.1客户端故障转移:bootstrap.servers配置
你是否遇到过
bootstrap 客户端 git
















