数组的学习
1.数组的概念?作用是什么?
系统中存储多个值,
2.数组的定义?
数据类型[] 数组名;

3.定义好数组以后需要对其进行初始化
数组初始化有两种:
第一种动态初始化,指定数组的长度,长度指数组中可以存放多少条数据,一旦定义不能改变
动态初始化有两种
1,数组类型[ ] 数组名=new 数组类型[数组的长度]
2,数据类型[] 数组名;
数组名=new 数组类型[数组的长度]
如果数组动态初始化完成后,数组元素都会有一个默认值(原因:)
整数---0 小数--0.0 char--空格 boolean--false 引用数据类型----null
第二种静态初始化,
不是指定数组的长度,而是在初始化的同事给数组元素赋值
数组类型[] 数组名=new 数组类型[]{元素值1,元素值2,...}
获取,如何访问数组:
常见的数组异常:
ArrayIndexOutOfBoundsException 数组下标越界异常
NullPointerException 空指针异常

获取数组长度:数组名.length;
数组的遍历:
1.for循环

for(int i=0;i<arr7.length;i++){
sum=sum+arr7[i]; }

2.foreach
for(int a:arr) 数组第一个元素开始遍历,遍历后赋值给a,继续

for(int str:arr7){
System.out.println(str);
}

1.栈(Stack):主要存放局部变量
2.堆(Heap):new出来的东西都在堆里面.只要在堆里面的变量都有默认值
3,方法区(Method Area):存放.class文件
4.本地方法区:和操作系统有关
5.寄存器:和cpu有关

冒泡排序
两两比较

从大到小
10,20,30,40,50,60,70
----
20,30,40,50,60,70,10 第一趟 6次
30,40,50,60,70,20,10 第二趟 5次
40,50,60,70,30,20,10
50,60,70,40,30,20,10
60,70,50,40,30,20,10
70,60,50,40,30,20,10 第六趟 1次

7个数比较6趟
N个数比较n-1趟

次数=7-趟数

 package day04;
/**
* n个数字来排队,两两比较小靠前
* 外层循环n-1
* 内层循环n-1-i
* @author ASUS
*
*/
public class Demo2 {
public static void main(String[] args) {
//从大到小
int arr[]={10,20,30,40,50,60,70};
//外层循环控制趟数
for(int i=0;i<arr.length;i++){
//内存循环控制次数 for(int j=0;j<arr.length-i-1;j++){
//从大到小 <
if(arr[j]<arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
} }
for(int num:arr){
System.out.println(num);
} }
}

二维数组;数组中的数组
定义格式:
数组类型[][] 数组名;
第一个中括号代表二维数组中有几个一维数组 行
第二个中括号代表每个一维数组中有几个元素 列
二维数组初始化
动态初始化
静态初始化

 package day04;
/**
* 二维数组
* @author ASUS
*
*/
public class Demo3 { public static void main(String[] args) {
//1.动态创建数组
int[][] arr=new int[3][4];
arr[0][1]=10; //静态初始化
int [][]arr1=new int[][]{{12,89,56},{75,45,45}}; //最简单
int[][] arr2={{12,89},{75,45,54},{75,41,54}}; //遍历二维数组
//外层控制行
for(int i=0;i<arr2.length;i++){
for(int j=0;j<arr2[i].length;j++){
System.out.println(arr2[i][j]+"\t");
}
}
}
}

常用知识点:

数组的复制与反转:

 //复制
final int arr5[]=arr4.clone();
System.out.println("数组的复制"+Arrays.toString(arr5));
//反转
for(int i=0;i<arr4.length/2;i++){
final int temp=arr4[i];
arr4[i]=arr4[arr4.length-1-i];
arr4[arr4.length-1-i]=temp;
} System.out.println("反转后的数组"+Arrays.toString(arr4));
数组的打印:System.out.println(Arrays.toString(arr5));
 //4.将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|C罗|罗纳尔多|贝克汉姆”。
String [] arr2={"梅西","卡卡","c罗","罗纳尔多","贝克汉姆"};
for(final String str:arr2){
System.out.print(str+(str.equals(arr2[arr2.length-1])?"":"|")+" ");
}
 System.out.print(str+(str.equals(arr2[arr2.length-1])?"":"|")+" ");
 

关于java基础_数组的学习的更多相关文章

  1. 【BigData】Java基础_数组

    什么是数组?数据是可以装一组数据的变量 1.定义数组 float[] arr1 = new float[10]; // 可以装10个float数据 int[] arr2 = new int[10]; ...

  2. 13.Java基础_数组内存图

    单个数组内存图 new int[3]: 在堆内存里申请一块空间存储int类型的变量(初始化时值都为0) int[] array: 在栈内存申请一块内存存储堆内存里数组的首地址 array[i]: 通过 ...

  3. 关于java基础_方法的学习

    方法: 方法就是把一堆需要反复执行的代码封装起来,如果项目需要调用这段代码时,直接调用方法名即可 方法相当于榨汁机, 材料:水果 产出物:果汁 参数(材料):进入方法的数据 返回值(产出物):就是方法 ...

  4. 【java开发】数组基本学习

    一维数组 定义:具有相同数据类型的一组数据. 声明:int []a=new int[3];    释义:该数组的数据类型为int型,该数组长度为3,有3个元素 可采用如下方式为元素赋值:a[0]=1; ...

  5. Java基础之 数组详解

    前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...

  6. Java基础-反转数组

    /** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...

  7. java基础(十) 数组类型

    1. 数组类简介   在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...

  8. java 基础概念 -- 数组与内存控制

    问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...

  9. Java基础:数组的声明,循环,赋值,拷贝。

    数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...

随机推荐

  1. 28个漂亮的React.js后台管理模板

    React管理模板 为您的React Web应用程序开发一个管理区域可能非常耗时.它与设计所有前端页面一样重要. 这是2020年设计出色的顶级React.js后台管理模板的列表. 这些模板确实有价值, ...

  2. Oracle 多条数据转一行逗号隔开

    wm_concat   例: select wm_concat(市) from pa50 where apa132=省

  3. Mysql多条数据以一条展示和判断某字符是否在某字段

    多条数据以一条数据展示:GROUP_CONCAT select GROUP_CONCAT(uuid) from user; 判断某字符是否存在某字段:INSTR select * from( sele ...

  4. JavaScript学习系列博客_21_JavaScript 变量、函数的提前声明

    变量的提前声明(全局作用域) - 我们知道js的代码是自上而下执行的.如下,console.log(a)在var a=10前面,但是结果输出的是undefined. - 使用var关键字声明的变量,会 ...

  5. Java树形结构中根据父类节点查找全部子类节点

    上一篇文章介绍了两种树形结构数据整合json格式的方法,第一种方法中有根据父类获取全部子类的方法,这里单独拿出来再说一下. 仍然是利用递归来整合,代码如下: //根据父节点获取全部子节点 public ...

  6. 要点4:C的文件操作

    关于文件操作个人比较困惑的地方有两点: 关于w和wb的区别 如何定位文件的读写位置 文件格式和打开模式 c中的文件打开模式分为:文本模式和二进制模式,分别处理文本格式文件和二进制格式文件. 两个模式的 ...

  7. Java中动态规则的实现方式

    背景 业务系统在应用过程中,有时候要处理“经常变化”的部分,这部分需求可能是“业务规则”,也可能是“不同的数据处理逻辑”,这部分动态规则的问题,往往需要可配置,并对性能和实时性有一定要求. Java不 ...

  8. js对象数组新增、修改时的验证是否重复的逻辑

    JS代码: // 定义数据集合 const persons = [ { id: 1, name: '张三' }, { id: 2, name: '李四' } ] console.log('') con ...

  9. iview table render 进阶(一)

    Qestion: 如何给表格添加hover 事件? step1:  添加 domProps 选项参数 step2:  废话不多说,直接看demo code render: (h, params) =& ...

  10. Mono生命周期小实验

    今天在写代码的时候,遇到一个初始化顺序问题,于是做了一个实验,下面记录结果: 情景: 1.在 脚本A中实例化 一个预制体,该预制体挂有脚本B 2.在 脚本A中,获取实例化物体 身上的 脚本B,并且设置 ...