数组的学习
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. AMD 5700 XT显卡装ubuntu18.04.* 驱动的问题解决(全)

    公司开发需要测试新的 AMD显卡,由于测试服务器上的显卡是英伟达的显卡所以换完后要安装相应的驱动.由于之前装机的同事装的ubuntu是18.04.5 恰巧18.04.5在amd官网上没有相匹配的驱动( ...

  2. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  3. Python钉钉报警及Zabbix集成钉钉报警

    钉钉报警设置 创建群机器人 11111 接口地址 发送短消息 发送普通消息 import requests import json url = 'https://oapi.dingtalk.com/r ...

  4. JDK1.8源码学习-String-hashCode方法为什么选择数字31作为乘子

    1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法.然后大致看了一下 hashCode 的实现,发现并不是很复杂.但是我从源码中发现了一个奇怪的数字,也就是本文的主 ...

  5. PC,移动端H5实现实现小球加入购物车效果

    HTML部分: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" ...

  6. typedef的陷阱

    typedef定义了一种类型的新别名,不同于宏,它不是简单的字符串替换.比如: 先定义: typedef char* PSTR; 然后: int mystrcmp(const PSTR, const ...

  7. 一个简单的Android音乐播放器

    Android小白的期末作业 Android期末项目,仅用作学习使用,在线音乐部分只获取了网易云热歌榜,API来自鼻子亲了脸 传送门: GitHub 参考: anddiencn 实现功能 展示出本地的 ...

  8. Android Studio Eclipse运行时出现 finished with non-zero exit value 2 错误解决方法

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing Error:Ex ...

  9. Android开发之 当前日期String类型转date类型 java代码中实现方法

    /** * 获取当前时间 * * @return */ public Date getDate(String str) { try { java.text.SimpleDateFormat forma ...

  10. Unity透明地形

    http://answers.unity3d.com/questions/1162779/unity-5-transparent-terrain-shader.html http://answers. ...