数组类型

  数组是一种常见的数据结构,可用于存放多个数据,每一个数组元素存放一个数据,通常可以通过下标进行访问其元素。

  Java数组要求所有数组元素具有相同的数据类型。因此,数组元素的数据类型是唯一的。

  数组定义如下:

  

        type[] arrayName; //推荐使用
type arrayName[]; //不推荐使用

  通常我们都使用第一种方式。注意:数组的定义不能指定数组长度,只有在初始化时才指定长度。

  数组初始化:

        int[] intArr = new int[]{,,,,}; //静态初始化
int[] intArr2 = {,,,,}; //静态初始化的简化版,通常使用这种 int[] intArrDy = new int[]; //动态初始化

  动态初始化时必须为数组指定长度,系统会自动为数组每个元素指定默认值,默认值与数组元素类型有关,具体如下:

  • 整数类型(byte、short、int、long),默认值为0
  • 浮点类型(float、double),默认值为0.0
  • 字符类型(char),默认值为'\u0000‘
  • 布尔类型(boolean),默认值为false
  • 引用类型(类、接口和数组),默认值为null

使用数组

访问数组

  数组最常用的用法是访问数组,包括对数组元素的读取和赋值。使用下标访问数组元素,如下:

        int[] intArr = {,,,,};
intArr[] = intArr[] + intArr[];
System.out.println(intArr[]); //

  下标从0开始,最后一个下标是length-1,即数组总长度-1。当下标大于等于数组长度时会产生数组下标越界异常(java.lang.ArrayIndexOutOfBoundsException)。

遍历数组

  通常有两种方法遍历数组,如下:

        int[] intArr = {,,,,};

        //使用for语句
for (int i = ; i < intArr.length; i++) {
System.out.println(intArr[i]); //遍历打印数组元素
} //使用foreach语句
for (int i : intArr) {
System.out.println(i); //遍历打印数组元素
}

  区别在于,前者i表示数组下标,后者表示数组元素。再看下面的例子:

        String[] strArr = {"aaa","bbb","ccc"};

        //使用for语句
for (int i = ; i < strArr.length; i++) {
System.out.println(strArr[i]); //遍历打印数组元素
} //使用foreach语句
for (String string : strArr) {
System.out.println(string); //遍历打印数组元素
}

  而且,foreach语句一般不能修改元素,否则很容易出错。而且,foreach的效率略低于for语句,当数据量越大时效果越明显,当嵌套循环越多时越明显。

  不过foreach编程时会方便一点,所以当数据量不是特别大时,使用foreach会方便点。

  最后,给出一种效率最高的方法:

        String[] strArr = { "aaa", "bbb", "vvv" };

        for (int i = , len = strArr.length; i < len; i++) {
System.out.println(strArr[i]);
}

  就是把获取数组长度放在了for语句的语句1的位置,这样就不必每次循环都去读取数组长度了。

java学习笔记六——数组的更多相关文章

  1. Java学习笔记七——数组工具类Arrays

    数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...

  2. Java学习笔记六(I/O流)

    1.介绍 在实际开发过程中经常会用到数据的输入/输出操作,本篇博客着重分析一下,java中经经常使用到的有关IO操作的类.而在java中能够将经常使用的流分为两个部分:字节流和字符流. 1.流的抽象基 ...

  3. 【原】Java学习笔记012 - 数组

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:小店对自己的 ...

  4. 【原】Java学习笔记011 - 数组

    package cn.temptation; import java.util.Scanner; public class Sample01 { public static void main(Str ...

  5. 【原】Java学习笔记010 - 数组

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:一堆分数,要 ...

  6. Java学习笔记day04_数组

    1.switch case switch语句中表达式的数据类型是有要求的: JDK 1.0 ~ 1.4 , 数据类型接受byte, short, int, char JDK 1.5 , 数据类型接受b ...

  7. 1.14(java学习笔记)数组

    假如我们需要用到1000个相同类型的数据,肯定不可能创建1000个变量, 这样既不方便,也不直观,也不便于我们使用.这时就需要用到数组. 一.数组的声明与使用 public class Array { ...

  8. Java学习笔记六 常用API对象二

    1.基本数据类型对象包装类:见下图 public class Test { public static void main(String[] args){ Demo(); toStringDemo() ...

  9. Java学习笔记 03 数组

    一.数组的创建和使用 数组的创建和使用 >>创建方法1:先声明,再用new关键字分配内存(使用new关键字分配内存,整形数组中各个元素的初始值都为0) String str[]; str= ...

随机推荐

  1. POJ2186

    poj2186 popular cows   Every cow's dream is to become the most popular cow in the herd. In a herd of ...

  2. css 下拉列表的制作

    圣诞节后上课就是不在状态,一整天都在神游,还感觉特别累,本来想休息休息的,结果某人看不惯我一直吃东西,非得把电脑给我打开,让整理今天所学的内容,想了一下,确实上午讲的用无序列表<ul>做的 ...

  3. JavaWeb 学习007-4个页面,5条sql语句(添加、查看、修改、删除)2016-12-2

    需要复习的知识: 关联查询 =================================================================================班级模块学 ...

  4. iOS工作笔记(十五)

    1.使用MJRefresh上拉加载的小细节 MJRefreshBackGifFooter *footer = [MJRefreshBackGifFooter footerWithRefreshingB ...

  5. Android开发学习笔记:浅谈显示Intent和隐式Intent

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/655132 ...

  6. CDN系统对网站的性能有极大的提升

    CDN系统对网站的性能有极大的提升 打开一个网站 我们只是请求了一个页面.单个页面,实际上所有文件都是一个新的请求.以新浪为例一共发起了35个请求. 这35个请求中.只有一个动态内容.其它均为静态.这 ...

  7. flask-admin章节一:使用chartkick画报表

    一般中小型WEB整体来看逻辑比较简单些,一般都是基于数据库的增删改查.不过通过数据库查询到的记录直接展示给用户不是很直观,大家其实蛮期待有一个报表 直接展示他们期待的内容. 这块就涉及到数据的提取和展 ...

  8. android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别

    android Activity类中的finish().onDestory()和System.exit(0) 三者的区别 Activity.finish() Call this when your a ...

  9. [PHP] Xhprof 非侵入式使用指南

    一般使用 Xhprof ,按文档操作可以快速上手,文件头开启 Xhprof,应用结束处得到访问的url查看. 这种使用方式可以快速看到效果,同时也有一些不好的地方: 一是不利于重复利用写好的示例代码: ...

  10. 一个sendMessage

    Message 1.判断是否同意协议.2.验证验证码是否正确.3.验证手机是否符合规则,符合规则就用message()发送短信,验证码的有效期以及使用的短信模板,在配置文件中进行管理.返回值下标为st ...