第十二次课

目标

一维数组(创建访问)

一、概念与特点

1、概念

相同数据类型的有序集合[]

数组名: 容器的名字

元素:  下标变量,数组名[下标]

长度:  length

下标:   位置、索引  [0,length)

2、特点

1)、数组是引用类型,也是对象 (new), 元素看成成员属性

2)、数组是一个容器,长度一旦确定不可改变 (new 开辟空间)

3)、元素的数据类型相同

a)、基本类型: int[]  double[]

b)、引用类型: String[] Man[] Dog[]

4)、位置有序,不是指内容有序

二、声明与初始化

1、使用默认值

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

类型数组名[] =new 类型[长度]; à不推荐类C语言的写法

2、手动给定值

类型[]  数组名 =new 类型[]{值列表};

省略形式:类型[]  数组名 ={值列表};

省略的形式不能与声明分开

三、数组的遍历

数组的访问如果没有规律,只能一个一个元素的访问,如果存在规律,可以循环来遍历访问。

1、普通for

2、增强for  foreach

注意: foreach常用于获取数据,因为局部变量拷贝的元素的内容。

3、练习(能做出前3个即可)

1)、存储1-5整数,累加求和

2)、模拟超市购物打印小票(列出商品) 结账

3)、将1-20存放到指定的数组中

4)、存储乘法表的值,求和

5)、5个人,组成一个圈,每2个退出一个,打印退出的顺序,最后一个编号是谁 (了解......)

//代表5个人 -->false 存在  true表示离开

boolean[] people =newboolean[10];

//不断的踢人

inti=0;

intlen =people.length;

intj=0; //0 1

while(len>0){

//不断0 1 2 3 4 循环查找

if(people[i]==false){

j++; //找到一个

if(j==2){

people[i]=true;//离开

len--; //少一人

System.out.println(i);

j=0;

}

}

i++;

i=i%people.length;

}

6)、随机生成100个小写字母,统计打印每个字母出现的概率

a)随机生成小写字母

b)生成100个,

c)统计概率

7)、使用数组实现:有三个人,张三(24岁),李四(28岁),王五(22岁);编写程序实现:

在程序中有一个int变量,当其值为某个人的年龄时,

打印出该人姓名。并在其值不等不等于这三个人的年龄时,输出没有人的年龄为[值]。

如:

a) int age=22;则输出王五

b) int age=12;没有人的年龄为12

四、数组的界限(避免运行时异常)

1、NullPointerException

没有开辟空间

2、ArrayIndexOutOfBoundsException

数组越界,范围在[0,长度)

3、NegativeArraySizeException

负数的长度,编译通过,运行错

五、命令行参数(了解)

1、cmd传递参数

java ArrayDemo11  a b c "d e f"

2、eclipse 传递

六、数组方法

1、equals()

没有重写equals方法,比较还是地址

2、Arrays.equals()

比较数组的内容

3、Arrays.sort()–>了解

从小到大(默认,升序) 或者从大到小(降序)排序

了解:

1)、Comparable +compareTo

2)、Comparator +compare

最新文章

  1. List 集合线程安全测试
  2. WCF XmlSerializer GetType 反射类型 报错 解决方案
  3. java 遍历文件夹里的文件
  4. Android权限之sharedUserId和签名
  5. Longest Repeated Sequence【微软编程一小时-题目2】
  6. 将C# dataTable 做为参数传入到存储过程
  7. wand(weak and)算法基本思路
  8. WPF 核心体系结构
  9. php数字转中文
  10. Eclipse 取消import自动补全具体的类名
  11. [Swift]LeetCode97. 交错字符串 | Interleaving String
  12. 「洛谷3292」「BZOJ4568」「SCOI2016」幸运数字【倍增LCA+线性基+合并】
  13. spring cloud 入门,看一个微服务框架的「五脏六腑」
  14. 【CF850E】Random Elections(FWT)
  15. 026_关于shell中的特殊变量$0 $n $* $@ $! $?
  16. struts2漏洞信息
  17. [CF1017G]The Tree[树链剖分+线段树]
  18. 4.18n阶勒让德多项式求解
  19. Ubuntu Touch On Nexus4 Manual Install (手动安装) under Gentoo
  20. 基于jquery带时间轴的图片轮播切换代码

热门文章

  1. SQL语句大全(mysql,sqlserver,oracle)
  2. 统计类别数量并且使用pyplot画出柱状图
  3. java之RTTI和反射的理解
  4. HDU 4890 One to Four(2014 Multi-University Training Contest 3)
  5. 前端必须掌握30个CSS3选择器
  6. IT公司100题-6-根据上排给出十个数,在其下排填出对应的十个数
  7. 1、ViewModel类的构建和INoyifyPropertyChanged的应用
  8. [mr440] 崎岖的山区
  9. 创建和运行shell脚本程序
  10. [VS]vs的宏