第十二次课

目标

一维数组(创建访问)

一、概念与特点

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

java学习第十天的更多相关文章

  1. 201671010140. 2016-2017-2 《Java程序设计》java学习第十六周

    java学习第十六周-并发        本周,学习了Java中线程,并发的知识,在老师的带领下,进行了对知识的理解学习,以及对实验的运行讲解,对这一块内容掌握的还可以,在自主编程中,也能够完成.线, ...

  2. 201671010140. 2016-2017-2 《Java程序设计》java学习第十五周

    java学习第十五周 Java的GUI界面设计,框架以及主要部件填充,归置,布局管理,在第十一章和第十二章进行了系统的学习,在这两章的知识奠基下,可以简单的构造一个GUI用户界面,在两周的学习后,可以 ...

  3. 201671010140. 2016-2017-2 《Java程序设计》java学习第十四周

      java学习第十四周       本周,主要精力放在了第十二章swing用户界面组件知识的学习,swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨 ...

  4. 201671010140. 2016-2017-2 《Java程序设计》java学习第十周

    ---恢复内容开始--- Java学习第十周       本周,学习泛型程序设计,泛型也被称为参数化类型(parameterized type),就是在定义类.接口和方法时,通过类型参数指示将要处理的 ...

  5. JAVA学习前十天:小结、面向对象之”扑克牌“例子

    2016年4月26号正式步入JAVA学习课堂,学习了第一节JAVA课程,由于以前有C语言基础,所以课程有点快! 第一天:学习了教材的第一部分,第一部分总共两章,分别是JAVA简介和JAVA基础语法. ...

  6. 从.Net到Java学习第十二篇——SpringBoot+JPA提供跨域接口

    从.Net到Java学习系列目录 最近又撸了半个月的前端代码,做app离线存储,然后又花了一周去将过去的wcf项目转webapi,java又被落下了,总感觉我特么像斗地主中的癞子牌,变来变去..... ...

  7. 从.Net到Java学习第十篇——Spring Boot文件上传和下载

    从.Net到Java学习系列目录 图片上传 Spring Boot中的文件上传就是Spring MVC中的文件上传,将其集成进来了. 在模板目录创建一个新的页面 profile/uploadPage. ...

  8. 201671010140. 2016-2017-2 《Java程序设计》java学习第十二周

    java学习第十章:图形程序设计       本章,介绍的是如何编写使用图形用户界面GUI的java程序.主要讲的是如何编写定义屏幕上的窗口大小和位置的程序,如何在窗口中采用多种字体显示文本,如何显示 ...

  9. Java学习第十六天

    1:List的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 线程安全,效率低 ...

随机推荐

  1. 安卓手机修改host

    电脑修改 注意:usb设置为调试模式 1.手机必须先root,小米可以安卓开发版系统即可 2.安卓 adb工具(android debug bridge) 3.依次执行下面的命令 1.adb root ...

  2. HDU4815

    Little Tiger vs. Deep Monkey Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K ( ...

  3. js ——算法

    1.使用js 数组去重复: 方法①: var arr=[1,2,1,5,2,3,5,1,6,9]; function deRepeat(){ var newArray=[]; var obj={}; ...

  4. SVN删除同名文件夹

    解     释一下:     SVN  出现这个错误的原因是我删除了一个文件夹后又创建了一个同名文件夹.  在  svn   server  端,好像是不能区分这两个文件夹,所以出现了错误.     ...

  5. weblogic部署ssh2应用出现异常

    一般在domains\your_Domain\bin\startWebLogic.cmd 中找到set CLASSPATH=%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH ...

  6. cf 307

    一开始我是不想打的  又因为307这个数字太特殊了 毕竟307  希望今天的考试不要挂掉 http://codeforces.com/contest/551/problem/A #include< ...

  7. Linux下的多线程编程

    1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,但是在一个进程(proces ...

  8. EntityFramework之创建数据库及基本操作(一)

    那时学EF的时候还没有Code First,只有DB First,生成的是一个EDMX文件,Code First则没有这文件,下面直接上代码吧 数据库创建以及建表 1.首先我们新建一个新项目,使用Nu ...

  9. placeholder在IE8中兼容性问题解决

    placeholder是HTML5中的一个属性,可以在文本框中设置placeholder属性来显示一些提示性的文字,但对IE10以下的浏览器不支持,下面方法可以让placeholder能够使用在IE1 ...

  10. limit 百万级数据分页优化方法

    mysql教程 这个数据库教程绝对是适合dba级的高手去玩的,一般做一点1万 篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发.可是数据量到了10万,百万至千万,他的性能还能那么高吗? 一点小 ...