文章目录
IDEA使用
IDEA是通过项目来管理java源码的,对我飘了,我嫌麻烦直接换IDEA了
快捷键
- ctrl + / 注释
- ctrl + alt + ↓ 复制当前行到下一行
- ctrl + alt + L 自动格式化
- alt + R 运行程序
- alt + insert 生成构造器
- ctrl + h 查看类的继承关系
- ctrl + b或者ctrl + 鼠标左键
- .var 自动分配变量名
- ctrl + d 删除当前行
模板
- main
- sout
- fori
- 自定义模板
数组
1. 定义
> + 静态赋值 ```int[] hens = {1,3,5,3,2,4,6,3}; ```
> + 动态赋值 ```int[] a = new int[5]; ```
2. 细节
> 1. 数组是多个类型相同的数据的集合,包括基本类型和引用类型,但是不能混用。
> 2. 数组创建后如果没有赋值则会自动赋初始值。
> 3. 使用数组要先定义,再赋值,然后使用。
> 4. 数组的下标从0开始,且只能在范围内使用,不能越界。
> 5. 数组是引用数据类型,属于对象。
> 6. 数组在赋值的时候默认赋的是地址。(类似于js的深浅拷贝)
3. 属性
length
可以获取到数组的长度
4. 方法
数组拷贝(深拷贝,数据空间独立)
对数组进行遍历,逐元素拷贝。
int[] a = {
1,2,3};
int[] b = new int[3];
for (int i = 0; i < a.length; i++) {
b[i] = a[i];
}
数组翻转
逆序赋值
int[] arr = {
11,22,33,44,55,66};
int temp = 0;
int[] arr2 = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arr2[i] = arr[arr.length - 1 - i];
}
arr = arr2;//让原来的数组销毁
找规律
int[] arr = {
11,22,33,44,55,66};
int temp = 0;
for (int i = 0; i < arr.length/2; i++) {
temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
数组扩容
创建一个新数组,将之前的数组拷贝进去,然后将新加入的值存进去,最后将以前的数组指向新的数组。
int[] arr = {
1,2,3};
int[] arr2 = new int[arr.length + 1];
for (int i = 0; i < arr.length; i++) {
arr2[i] = arr[i];
}
arr2[arr.length] = 4;
arr = arr2;
数组缩减
创建一个新数组,将除了被删减的元素存入,然后将以前的数组指向新的数组。
int[] arr = {
1,2,3,4};
int[] arr2 = new int[arr.length - 1];
for (int i = 0,j = 0; i < arr.length; i++) {
if(i != 0){
arr2[j] = arr[i];
j++;
}
}
arr = arr2;
冒泡排序
int[] arr = {
12,56,34,78,32,45};
int temp = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if(arr[j] > arr[j + 1]){
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
顺序查找
String[] names = {
"砂糖","清流","刻晴","蜜莓"};
boolean flag = true;
for (int i = 0; i < names.length; i++) {
if(names[i] == "蜜莓"){
System.out.println(i + "," + names[i]);
flag = false;
}
}
if(flag == true){
System.out.println("找不到这人女孩子");
}
二维数组
二维数组其实就是数组中的每个元素又是一个数组
1. 定义
二维数组的长度是行数
int[][] arr1 = {
{
0,0},{
0,0}};
int[][] arr2 = new int[2][3];