java基础(八章)
一、 什么是数组及其作用?
定义:具有相同数据类型的一个集合
作用:存储连续的具有相同类型的数据
二、 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基础(八章)的更多相关文章
- 微冷的雨Java基础学习手记(一)
使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...
- Java基础常见英语词汇
Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的 ['prəʊɡræmɪŋ]编程 OO: object ...
- Java英文单词Java基础常见英语词汇
Java英文单词Java基础常见英语词汇(共70个) ...
- “全栈2019”113篇Java基础学习资料及总结
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八章:IntelliJ IDEA设置注释不显示在行首
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
- 最适合作为Java基础面试题之Singleton模式
看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...
- java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...
随机推荐
- Android 性能优化——之图片的优化
Android 性能优化——之图片的优化 在Android性能优化中,我们会发现占内存最大的和对性能影响最大的往往是图片资源,其次是控件资源.相对来说,其他的资源的影响会小一点.这里我就先对图片资源的 ...
- (一)java多线程之Thread
本人邮箱: kco1989@qq.com 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco github: https://github.com/kco198 ...
- collection and map and Collections
两者的区别: 两者都是接口: Collectoin是java集合框架的一个顶级接口,存储的元素可以是任意类型的对象: Map是java集合框架的映射接口,以键值对的形式存储对象: 也就是说,colle ...
- 【珍藏】linux 同步IO: sync、fsync与fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列, ...
- MyEclipse(8.5以上的版本) 安装js的开发插件aptana
最近在学习js,想在MyEclipse(MyEclipse 10) 上面安装一个js的开发的插件aptana. MyEclipse 8.5以后的版本的安装的方法: 1.下载aptana_update_ ...
- cctype学习
#include <cctype>(转,归纳很好) 头文件描述: 这是一个拥有许多字符串处理函数声明的头文件,这些函数可以用来对单独字符串进行分类和转换: 其中的函数描述: 这些函数传入一 ...
- SMP-1
项目:该项目是用web做一个捐款的管理系统. 目标:可以记录接受捐款和资助捐款的信息,可以查询捐款等. 计划时间:2016-01-01至2016-01-15 实际用时:2016-01-08至2016- ...
- ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统
为什么使用 Jwt 最近,移动开发的劲头越来越足,学校搞的各种比赛都需要用手机 APP 来撑场面,所以,作为写后端的,很有必要改进一下以往的基于 Session 的身份认证方式了,理由如下: 移动端经 ...
- JavaScript知识点整理(一)
JavaScript知识点(一)包括 数据类型.表达式和运算符.语句.对象.数组. 一.数据类型 1) js中6种数据类型:弱类型特性 5种原始类型:number(数字).string(字符串).bo ...
- iOS 发布证书提示 此证书的签发者无效 解决办法
1. 打开钥匙串 查看发布证书 都是提示 此证书的签发者无效 解决办法 : 2. 到了 第 4 步骤 再去 查看 发布证书 就会 显示 此证书有效 3. 如果还不可以 就 把 Apple W ...