2020-07-31

第五章JAVA数组

1,数组是什么?为什么使用数组?
数组可以存放多个值。因为一个变量,只能保存一个数据
数组用来将相同数据类型存储在存储单元里,数组的所有元素必须属于相同的数据类型
2,什么是数组
数组和变量差不多,都是存放数据的,不同的是,变量只能保存一条数据,而数组可以保存多条数据,前提这个多条数据必须是同一类型的
数组是引用数据类型,除了八大基本数据类型,其他的都是引用的
3.如何定义数组?
数组类型[]数组名;
如果定义好数组以后,必须要给数组进行初始化
数组是一个引用数据类型
4.数组的初始化分为两种:
①动态初始化:指定数组的长度,一旦长度指定,就是数组中只能存放多少数据
两种格式:
第一种:
数组类型[]数组名=new 数组类型[数组长度];
第二种:
数组类型[]数组名;
数组名=new 数组类型[数组长度];
怎么给数组进行赋值?
通过数组的下标,数组的下标从0开始
②静态初始化:不是指定数组长度,而是直接在初始化数组的同时给数组赋值
两种格式:
第一种:
数组类型[]数组名=new 数组类型[]{数据1,数据2……};
第二种:
数组类型[]数组名;
数组名=new 数组类型[]{数据1,数据2……};
还有一种最简单的方式,数组类型[]数组名={数据1,数据2……};
5.获取数组长度
数组名.length,数组的长度一旦定义,不可改变
6.数组中常见的几种异常
①数组越界异常:ArrayIndexOutBoundsException
②空指针异常:
NullPointerException
7.遍历数组两种方式:
①使用for循环,i代表数组的下标
for(int i=0;i<array.length;i++){}
②foreach(for循环的增强版)
for(定义变量接收数组的每一个元素值:要遍历的数组名)
for(int a:array){syso(a)}
8.数组分类
①基本数据类型的数组
byte short int long double float char boolean
0 0 0 0 0.0 0.0 空格 false
②引用数据类型的数组
String 接口 自己定义的类…
引用数据类型的默认值为null
9.java中的内存是怎么进行分配的?
内存的申请和释放都是jvm进行管理的,java程序要运行,jvm会自动的向电脑申请一块内存,把这块内存分为五部分
①栈( Stack) :主要存放局部变量
②堆(Heap):凡是new出来的东西都在堆里面,堆中的数据都有默认原则
③方法区(MethodArea):存放的是与.class文件相关的信息
④本地方法区(NativeMethodArea):与操作系统有关
⑤寄存器( Register) ::与cpu有关.
10.冒泡排序(重点)
核心思想:数组中的元素两两比较
口诀(升序)
n个数字来排队
两两相比小靠前
外层循环n-1
内存循环n-1-i
//从小到大
int[] array={};
//外层循环控制趟数
for(int i=0;i<array.length-1;i++){
//内层控制次数
for(int j=0;j<array.length-i-1;j++){
//比较从大到小用< 小到大用>
if(array[j]<array[j+1]){
int temp=array[j];
array[j]=array[j+1]
array[j+1]=temp;
}
}
}
选择排序(了解):效率较低
11.二维数组:数组中的数组
①声明二维数组:
数据类型[][] 数组名;
第一个中括号:二维数组中有几个一维数组 行
第二个中括号:每个一维数组中有多少元素 列
12.初始化二维数组
第一种动态初始化
int[][] array=new int[5][7];
array[0][0]=10;
int [][] arr =new int[3][];//二位数组中有3个一维数组。
int[][] arr = new int[][3];//非法
第二种静态初始化
int[][] array1=new int[][]{数据集合1,数据集合2}
简写
int [][] array2={ };
获取二维数组的长度:.length
13.遍历二维数组
外层循环控制行(每一个一维数组)
for(int i=0;i<array.length;i++){
内层循环控制的是列
for(int j=0;j<array[i].length;j++){
syso array[i][j]
}
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
USE MyDatabase; -- 创建表1 CREATE TABLE Table1 ( ID INT PRIMARY KEY, Name VARCHAR(50) NOT NULL, Age INT NOT NULL, Gender VARCHAR(10) NOT NULL ); -- 插入数据到表1 INSERT INTO Table1 (ID, Name, Age, Gender) VALUES (1, 'John', 25, 'Male'), (2, 'Mary', 30, 'Female'), (3, 'Tom', 20, 'Male'), (4, 'Alice', 35, 'Female'), (5, 'Bob', 28, 'Male'), (6, 'Sara', 32, 'Female'), (7, 'David', 27, 'Male'), (8, 'Julia', 29, 'Female'), (9, 'Alex', 24, 'Male'), (10, 'Lisa', 31, 'Female'); -- 创建表2 CREATE TABLE Table2 ( ID INT PRIMARY KEY, Department VARCHAR(50) NOT NULL, Manager VARCHAR(50) NOT NULL ); -- 插入数据到表2 INSERT INTO Table2 (ID, Department, Manager) VALUES (1, 'Sales', 'John'), (2, 'Marketing', 'Mary'), (3, 'IT', 'Tom'), (4, 'HR', 'Alice'), (5, 'Finance', 'Bob'), (6, 'Operations', 'Sara'), (7, 'Engineering', 'David'), (8, 'Customer Service', 'Julia'), (9, 'Research', 'Alex'), (10, 'Product Development', 'Lisa'); -- 创建表3 CREATE TABLE Table3 ( ID INT PRIMARY KEY, ProductName VARCHAR(50) NOT NULL, Price FLOAT NOT NULL ); -- 插入数据到表3 INSERT INTO Table3 (ID, ProductName, Price) VALUES (1, 'iPhone', 999.99), (2, 'Samsung Galaxy', 799.99), (3, 'Google Pixel', 899.99), (4, 'Huawei P30', 699.99), (5, 'OnePlus 7T', 599.99), (6, 'Xiaomi Mi 9', 499.99), (7, 'LG G8', 699.99), (8, 'Sony Xperia', 749.99), (9, 'HTC U12', 649.99), (10, 'Nokia 9', 599.99); -- 创建表4 CREATE TABLE Table4 ( ID INT PRIMARY KEY, OrderDate DATE NOT NULL, ProductID INT NOT NULL, Quantity INT NOT NULL, FOREIGN KEY (ProductID) REFERENCES Table3(ID) ); -- 插入数据到表4 INSERT INTO Table4 (ID, OrderDate, ProductID, Quantity) VALUES (1, '2020-01-01', 1, 2), (2, '2020-02-01', 2, 3), (3, '2020-03-01', 3, 1), (4, '2020-04-01', 4, 4), (5, '2020-05-01', 5, 2), (6, '2020-06-01', 6, 3), (7, '2020-07-01', 7, 1), (8, '2020-08-01', 8, 4), (9, '2020-09-01', 9, 2), (10, '2020-10-01', 10, 3); -- 创建表5 CREATE TABLE Table5 ( ID INT PRIMARY KEY, CustomerName VARCHAR(50) NOT NULL, OrderID INT NOT NULL, FOREIGN KEY (OrderID) REFERENCES Table4(ID) ); -- 插入数据到表5 INSERT INTO Table5 (ID, CustomerName, OrderID) VALUES (1, 'John Smith', 1), (2, 'Mary Johnson', 2), (3, 'Tom Lee', 3), (4, 'Alice Wang', 4), (5, 'Bob Chen', 5), (6, 'Sara Kim', 6), (7, 'David Lee', 7), (8, 'Julia Brown', 8), (9, 'Alex Wong', 9), (10, 'Lisa Zhang', 10);
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值