上来先道歉
抱歉
每次都有几个人看我写的笔记
然后估计骂骂咧咧出去
说这人咋这么菜哎
我自己觉得也是
期末考试来不及复习咯!
学的很焦虑
希望自己能坚持一天是一天!
数组
定义数组 及空间开辟
package com.yolanda.array;
public class Demo01 {
public static void main(String[] args) {
//变量类型 变量名字 = 变量的值
int[] nums;//定义,最好用这种
int nums2[]; //不建议使用
//创建数组
nums=new int[10];//这里可以存十个int类型的数字,这里是开辟空间
//给数组元素赋值
nums[0]=1;
nums[1]=1;
nums[2]=1;
nums[3]=1;
nums[4]=1;
nums[5]=1;
nums[6]=1;
nums[7]=1;
nums[8]=1;
// nums[9]=1;
int sum=0;
for (int i = 0; i < nums.length; i++) {
sum+=nums[i];
}
System.out.println(sum);
}
}
内存空间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIg1QJkN-1675310771126)(C:\Users\Yolanda Y\AppData\Roaming\Typora\typora-user-images\image-20230128130435130.png)]
第一步:在栈中压入名字array
第二步:在堆中创建10个数组
第三步:在堆中的空间赋值
三种初始化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o5inBNw9-1675310771128)(C:\Users\Yolanda Y\AppData\Roaming\Typora\typora-user-images\image-20230128130242488.png)]
数组四个基本特点
1.数组创建后大小不可改变
2.所有的元素类型都要相同
3.数组中的元素可以包含基本类型和引用类型
4.数组的变量是引用类型,数组本身就是对象,java对象在堆中
下标区间从0到length-1,超过就会报错
数组简单使用
package com.yolanda.array;
//数组的简单使用
public class Demo03 {
public static void main(String[] args) {
int[] array = {1, 2, 3, 5, 4};
//打印数组元素
for (int j : array) {
System.out.println(j);
}
// 计算所有元素之和
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
System.out.println(sum);
// 查找最大元素
int max=array[0];
for (int i = 0; i < array.length; i++) {
if (array[i]>max){
max=array[i];
}
}
System.out.println(max);
}
}
拓展:反转数组
package com.yolanda.array;
//反转数组
public class Demo04 {
public static void main(String[] args) {
int[] arrayList={1,2,3,4,5};
int[] reverseList=reverse(arrayList);
printList(reverseList);
}
public static int[] reverse(int[] arrays){
int[] result=new int[arrays.length];//创建新的result list
for (int i = 0, j = result.length-1; i < arrays.length; i++,j--) {
result[j]=arrays[i];
}
return result;
}
public static void printList(int[] arrays){
for (int array : arrays) {
System.out.print(array + " ");
}
}
}
多维数组
package com.yolanda.array;
//多维数组
public class Demo05 {
public static void main(String[] args) {
int [][] array={{1,2},{2,3},{3,4},{4,5}};
System.out.println(array[2][1]);//注意这其实是【3】【2】的元素
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]);
}
System.out.println();
}
}
}
Arrays类的运用
package com.yolanda.array;
import java.util.Arrays;
public class Demo06 {
public static void main(String[] args) {
int[] a={1,2,3,4,8888,77,665};
System.out.println(a);//正常输出hash code
//打印数组元素
System.out.println(Arrays.toString(a));//借用Arrays类作为工具
//自己写的打印类
//sort方法排序
Arrays.sort(a);
System.out.println(Arrays.toString(a));
//数组填充
Arrays.fill(a,0);//所有元素用0填充
System.out.println(Arrays.toString(a));
}
//自己写打印类
public static void printArray(int[] a){
for (int j : a) {
System.out.print(j + ",");
}
}
}
冒泡排序
package com.yolanda.array;
import java.util.Arrays;
//冒泡排序
public class Demo07 {
public static void main(String[] args) {
int[] a={0,9,8,7,9,8};
int[] sort=sort(a);
System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] array){
int temp;
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1-i; j++) {
if (array[j+1]>array[j]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return array;
}
}