day4
数组篇
// 数组创建的俩种方式
// 动态创建
int[] nums = new int[10];
// 静态创建
int[] nums_1 = {1,2,3,4,5,6};
System.out.println(nums.length);
System.out.println(nums_1.length);
// 内存分析
// 定义时先存入栈中,然后在堆中开辟空间,调用超出数组长度时会出现栈溢出
System.out.println(nums[11]);
System.out.println(nums_1[6]);
// java.lang.ArrayIndexOutOfBoundsException: Index 11 out of bounds for length 10
java栈:用于存放局部变量表
java堆:是所有线程共享的一块内存区域,用于存放对象实例,大部分的数组及对象实例都在此分配内存
当输出时超出数组长
//会提示相同错误
//ArrayIndexOutOfBoundsException:
数组下的类型保持一致性,同时创建完长度也就确定了
增强for循环
int[] arrays = {1,2,3,4,5};
for (int array:arrays){
System.out.println(array);
}
二维数组
// 多维数组
int [][] array = {{1,2},{2,3},{3,4},{4,5}};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
内置排序算法调用
Arrays.sort(a);
冒泡排序(bubble)
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length-i-1; j++) {
if (a[j]>a[j+1]){
int temp = a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
System.out.println(Arrays.toString(a));
}
改进
- 在第一层循环后加一个判断类型,
- judge = false
- 如果在第二层循环中有过交换,则将judge赋值为ture
- 如果此轮比较没有交换数据,则说明已经排序完成,退出此次循环
int count2 = 0;
for (int i = 0; i < b.length; i++) {
boolean judge = false;
for (int j = 0; j < b.length-i-1; j++) {
if (b[j]>b[j+1]){
int temp = b[j];
b[j]=b[j+1];
b[j+1]=temp;
judge = true;
}
count2++;
}
if (judge == false){
break;
}
System.out.println(Arrays.toString(b));
}
稀疏数组
查找有效坐标
标签:int,day4,System,++,length,println,out From: https://www.cnblogs.com/yorha/p/17017653.html