数组的学习
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. 轻量级Java EE企业应用实战:Struts2+Spring5+Hibernate5/JPA2

    轻量级Java EE企业应用实战(第5版)——Struts 2+Spring 5+Hibernate 5/JPA 2整合开发是<轻量级Java EE企业应用实战>的第5版,这一版保持了前几 ...

  2. VS2005 如何打开VS2008的工程 2009-06-24 20:22

    大家都碰到过用2005打开2008的工程吧.2008打开2005是没有问题,但是反过来呢,却不可以.当用2005打开2008时,看着工具提示要进行工程转换心里高兴吧,当转换后发现工程无法加载是不是很居 ...

  3. 【算法•日更•第三十五期】FF算法优化:EK算法

    ▎写在前面 FF算法传送门 之前我们已经学过了FF算法(全称Ford-Fulkerson算法)来找最大流,但是这种算法仍有诸多不对的地方. 其实这种算法存在着严重的效率的问题,请看下面的图: 以这个图 ...

  4. N46期第一周作业

    1.解释drwx rwx rwx中每个字符表⽰什么? d : 表示目录文件 ①rwx表示UID的读写执行权限  ②rwx表示GID的读写执行权限   ③rwx表示other的读写执行权限   2.li ...

  5. PAT 2-07. 素因子分解(20)

    题目链接:http://www.patest.cn/contests/ds/2-08 题目意思:long int范围内的正整数N进行素因子分解. 直接整除即可,不需要素数筛选 代码如下: #inclu ...

  6. exe调用DLL的方式

    假设被调用的DLL存在一个导出函数,原型如下: void printN(int); 三种方式从DLL导入导出函数 生成DLL时使用模块定义 (.def) 文件 在主应用程序的函数定义中使用关键字__d ...

  7. 【转】Ubuntu下解决Depends: xxx(< 1.2.1) but xxx is to be installed

    在ubuntu下由于更新package不成功,或者误删除了一些文件会出现Depends: xxx(< 1.2.1) but xxx is to be installed解决方法是先试着安装所缺的 ...

  8. 第七篇Scrum冲刺博客--Interesting-Corps

    第七篇Scrum冲刺博客 站立式会议 1.会议照片 2.队友完成情况 团队成员 昨日完成 今日计划 鲍鱼铭 各界面数据请求云函数设计及实现 代码交接及整体架构搭建 叶学涛 进行代码优化 和队友进行交接 ...

  9. CSS动画实例:3D立方体

    CSS3支持3D转换,与3D转换有关的属性有: transform:向元素应用 2D或3D 转换. transform-origin:改变被转换元素的位置. transform-style:规定被嵌套 ...

  10. 数据处理 | pandas入门专题——离散化与one-hot

    今天是pandas数据处理专题第7篇文章,可以点击上方专辑查看往期文章. 在上一篇文章当中我们介绍了对dataframe进行排序以及计算排名的一些方法,在今天的文章当中我们来了解一下dataframe ...