一、        什么是数组及其作用?

定义:具有相同数据类型的一个集合

作用:存储连续的具有相同类型的数据

二、        java中如何声明和定义数组

l  声明和定义的语法:

数据类型[ ] 数组名;( int[ ] nums ; )

或 数据类型 数组名[];  ( int nums[ ] ;)

l  为数组分配空间

数组名=new 数据类型[数组的长度]; ( nums=new int[5] ;)

l  声明数组,同时分配空间

数据类型[]数组名= new 数据类型[数组的长度];

数据类型 数组名[]=new 数据类型[数组的长度];

( int[ ] nums=new int[5] ;)   ( int nums[ ]=new int[5] ;)

三、        如何读取数组中的元素— 通过下标(索引)来获取

下标(索引)是从0开始,最大下标为  数组长度-1

下标越界:ArrayIndexOutOfBoundsException

int类型的数组,每个元素的默认值为0

String类型的数组,每个元素的默认值为null

 

1、            获取单个元素的值

数据类型 变量名=数组名[下标];

2、            循环读取数组中的每个元素

数组的长度:数组名.length 属性自动计算

for(int i=0;i<数组名.length ;i++){

数组名[i];

}

四、如何给数组中的元素赋值

方式1(赋予数组固定值):

声明数组,分配空间,并赋值

(数组的长度由值的个数决定)

数据类型  数组名[]=new 数据类型[]{值1,值2…值n};或

数据类型 []数组名={值1,值2…值n};

说明:[]中括号可以放在数组名前面或后面

方式2:动态的给数组赋值(从键盘中输入)

Scanner  input = new Scanner(System.in);

for(int i=0;i<数组名.length ; i++){

String类型的数组名[i]= input.next ();

int类型的数组名[i]= input.nextInt ();

double类型的数组[i]=input.nextDouble();

}

五、数组排序问题

使用Arrays. sort(数组名);

实现对数组中的元素按升序或降序输出

六、求最大值或最小值

实现思路:将数组中的第1个元素的值,假想成最大(小)值【赋值】;然后数组中的每个元素和假想的这个最大(小)数进行比较,

如果数组中的某个元素的值,比最大(小)数要大(小),将该元素的值,保存到假想的最大(小)值对应的变量中【给假想最值变量赋值】

七、求数组中最值的位置

1、            在循环的外面,定义变量k(赋值为0),用于保存最值的下标

2、            在循环中,比较找出最值的同时,给变量k赋值

八、斐波那契数列

1,1,2,3,5,8,13,21,34……求第20个数字的值?(使用循环)

规律:第i个 + 第(i+1)个 = 第(i+2)个

步骤1:定义数组,数组长度为20

int []nums=new int[20];

步骤2:根据规律,获取第0个和第1个数的初值

nums[0]=1;

nums[1]=1;

步骤3:通过循环,给数组中的所有元素赋值

for ( int i=0;i<nums.length-2;i++){

nums [i+2]=nums[i]+nums[i+1];

}

for(int i=2;i<nums.length;i++){

nums[i]=nums[i-2]+nums[i-1];

}

步骤4:输出nums[19]的值

九、(一、)已知一个数组,如何将一个【新的元素】插入到数组中的指定位置?

实现思路:

1、            定义一个长度为 【已知数组长度+1】的新数组YY

2、            使用第1个循环,将已知数组中的每个元素的值,保存到新数组YY中

3、            使用第2个循环,将新数组YY中的元素,从倒数第2个(新数组YY的长度-2)元素开始到指定的位置,依次向后移动1个位置

4、            直接将【新的元素】赋值给新数组YY中的指定元素(下标为指定位置)即可

5、            使用第3个循环,输出新数组YY的值

(二、)已知1个按升序或降序排列的数组,向该数组中,插入一个新的值,插入成功后,数组仍然按照升序或降序排列?

1、            设置插入位置变量index的初始值为:数组长度-1;

2、            使用第1个循环,让插入的数值和数组中的每个元素进行比较,如果插入的数值比数组中某个元素的值要大或小,把该元素的下标的值, 赋予插入位置变量index,同时终止循环

3、            使用第2个循环,移动位置,从【数组长度-2】到【插入位置变量index】

4、            将插入的值,保存到数组下标为index的位置

5、            使用第3个循环,输出数组所有元素的值,同时输出新值插入的位置

java基础(八章)的更多相关文章

  1. 微冷的雨Java基础学习手记(一)

    使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...

  2. Java基础常见英语词汇

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

  3. Java英文单词Java基础常见英语词汇

    Java英文单词Java基础常见英语词汇(共70个)                                                                          ...

  4. “全栈2019”113篇Java基础学习资料及总结

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. “全栈2019”Java第八章:IntelliJ IDEA设置注释不显示在行首

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  7. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  8. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  9. 最适合作为Java基础面试题之Singleton模式

    看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...

  10. java基础练习 字符串,控制流,日历,日期等

    1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...

随机推荐

  1. Linux防火墙配置—SNAT2

    1.实验目标 以实验"Linux防火墙配置-SNAT1"为基础,为网关增加外网IP地址,为eth1创建虚拟接口,使外网测试主机在Wireshark中捕获到的地址为eth1虚拟接口的 ...

  2. Maven的下载,安装,配置,测试,初识

    1:Maven官网:http://maven.apache.org/ Maven远程仓库:http://search.maven.org/ 2:Maven是一个采用纯Java编写的开源项目管理工具,M ...

  3. MySQL之使用DDL语句创建表

    一.使用DDL语句创建表 DDL语言全面数据定义语言(Data Define Language) 主要的DDL动词: CREATE(创建).DROP(删除).ALTER(修改) TRUNCATE(截断 ...

  4. stl_config.h基本宏

    四.宏: (其实呢, 我们所有的宏都包含在了 "stl_config.h"头文件中.) //这些宏是怎么判断是否需要定义:是否有指定的宏,还有一些特定的编译器也可能支持. 4.1. ...

  5. Windows7系统的封装

    系统装到虚拟机优化完成以后,可以装上自己想要装的软件,也可以不装做个纯净版的.今天用ES封装,首先打开一般我们只点这四项就够了,如下图 写上自己想写的,也可以不写系统默认,直接点“下一步”关闭设备管理 ...

  6. [KISSY5系列]淘宝全终端框架 KISSY 5--从零开始使用

    KISSY 是淘宝一个开源的 JavaScript 库,包含的组件有:日历.图片放大镜.卡片切换.弹出窗口.输入建议等 一.简介 KISSY 是一款跨终端.模块化.高性能.使用简单的 JavaScri ...

  7. java自带的http get/post请求servlet

    http请求方式太多,有java自带的,也有httpClient,用的地方还挺多,所以在此做一个小小的总结: public class HttpRequest { /** * 向指定URL发送GET方 ...

  8. stl中的容器、迭代器和算法----vector中的find实现

    来源 http://blog.csdn.net/huangyimin/article/details/6133650 stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的 ...

  9. Ubuntu server搭建Java web服务器

    1. 在Ubuntu server中安装ssh,如果是购买服务器的话,这已经是安装的了,包括vim 获取超级权限 先更新安装包 开始安装ssh ssh已经启动了 2. 安装Xshell并创建连接安装X ...

  10. Java学习笔记——设计模式之一.简单工厂

    蜀道之难.难于上青天,侧身西望长咨嗟 --蜀道难 设计模式第一篇,简单工厂. 定义Operation类 package cn.no1.simplefactory; public abstract cl ...