数组

    保存的是一组有顺序的、具有相同类型的数据。

    同一个数组中所有数据元素的数据类型都是相同的。

    可以通过数组下标来访问数组,数据元素根据下标的顺序,在内存中按顺序存放

1、数组声明

    符号“[]”说明声明的是一个数组对象

    ArrayType [ ] ArrayName; 
或者ArrayType ArrayName[ ];

2、数组创建

    使用 ArrayType[arraySize]
创建了一个数组并把新创建的数组的引用赋值给变量 ArrayName

    ArrayType [ ] ArrayName = new ArrayType[arraySize];//
使用默认值  arraySize数组长度
固定arraySize

    ArrayType [ ] ArrayName = = {value0, value1, ..., valuek};//
使用初始值

3、数组初始化和使用

    ArrayName[index]  代表数组ArrayName在index位置的数据

    数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,通过下标查找,也可以通过循环遍历

     int[] arr = {1, 2, 3, 4, 5,6,7};// 自动初始化
int[] arr1 = new int[10]; arr1[0]=1;// 赋值初始化
可用for循环遍历查找
for(int element:arr)
{
System.out.println("星期"+element);
} for(int i=0;i<arr1.length;i++)
{
System.out.println("星期"+arr1[i]);
}

4、数组复制

    从指定源数组 fromArray
中复制一个数组,复制从指定的位置 fromIndex
开始,到目标数
组 toArray,在指定位置 toIndex
结束,复制 length
个元素

    System.arraycopy(fromArray ,fromIndex,toArray,toIndex,length)

               //数组复制
System.arraycopy(arr, 0, arr1, 0, 5);
//循环遍历 使用数组下标 注意下标最大数字为数组长度减一
for(int i=0;i<arr1.length;i++)
{
System.out.println("arr1 "+arr1[i]);
}

5、数组排序

    冒泡排序:比较两个相邻的元素,将值大的元素交换至右端。

    冒泡排序的过程,是把数组元素中较小的看作是“较轻”的,对它进行“上浮”操作。从底部开始,反复地对数组进行“上浮”操作
n 次,最后得到有序数组

    N个数字要排序完成,总共进行N-1遍排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少遍,内层控制每一遍的循环次数

                      //冒泡算法
int temp;
// arr.length - 1是为了防止数据越界
for(int i=0;i<arr.length-1;i++){
//定义每次要比较的数据随着比较的次数的减少而减少
for(int j=0;j<arr.length-i-1;j++){
//每次比较后,要对每个数组里的元素进行比较,并排序
if(arr[j]>arr[j+1]){
//进行排序
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}

选择排序:从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处

//					    选择算法
for(int i=1;i<arr.length;i++){
//定义每次要比较的数据随着比较的次数的减少而减少
for(int j=1;j<arr.length-i-1;j++){
//每次比较后,要对每个数组里的元素进行比较,并排序
if(arr[j]>arr[j+1]){
//进行排序
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}

5、多维数组

    多维数组用多个索引来访问数组元素,它适用于表示表或其他更复杂的内容,多维数组是数组的数组

    以二维数组举例

    声明

        数据类型[][] 数组名称;

数据类型[] 数组名称[];

数据类型   数组名称[][];

    初始化

     数据类型[][] 数组名称 = new 数据类型[第一维的长度][第二维的长度];

数据类型[][] 数组名称;

数组名称 = new 数据类型[第一维的长度][第二维的长度];

    用法和一维数组一样,也即是一位数组的每一个元素都是一维数组

//						    int arr3[][]=new int[3][4];
int arr3[][]={{1,2,3},{1,2,3,4},{1,2}};
arr3[0][1]=1;
arr3[2][1]=2;
for(int element[]:arr3)
{
for(int el:element){
System.out.println("二维数组 "+el);
}
}

java 基础知识五 数组的更多相关文章

  1. 数组、栈、堆(java基础知识五)

    1.数组概述.定义格式 * A:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引用数据类型. * B:数组定义格式 格式1:数据类型[ ...

  2. Java基础知识系列——数组

    数组是我们在编程中常用到的一种数据结构. 数组创建有三种方式,以int类型为例: 1.int value[] = new int[]{1,2,3,4,5}; //{}中的是元素 2.int value ...

  3. C语言基础知识(五)——数组与指针的等价表示

    void f(void) { int * p; int a[3] = {1,2,3}; p = a; printf("%d %d", a[0], p[0], *(a+1), *(p ...

  4. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  5. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  6. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  7. Java 基础知识总结

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.数据类型:  数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte  8位   (by ...

  8. Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  9. 毕向东—Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

随机推荐

  1. Ceph部署(二)RGW搭建

    背景 Ceph RGW简介 Ceph RGW基于librados,是为应用提供RESTful类型的对象存储接口.RGW提供两种类型的接口: 1) S3:兼容Amazon S3RESTful API: ...

  2. 【转】搜索引擎选择: Elasticsearch与Solr

    原文地址:http://i.zhcy.tk/blog/elasticsearchyu-solr/ Elasticsearch简介 Elasticsearch是一个实时的分布式搜索和分析引擎.它可以帮助 ...

  3. QTP11完美破解小笔记

    相比Loadrunner的破解,QTP的应该会更简单,但是效果并没有Loadrunner的长久.QTP的破解只能维持30天,每30天需要再进行如下操作: 1.到C:\ProgramData目录下面去删 ...

  4. MyBatis从入门到放弃四:一对多关联查询

    前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询.一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collection属性,别忽略了ofType属性. 搭建开发 ...

  5. mvc4中的过滤器

    过滤器(Filter)把附加逻辑注入到MVC框架的请求处理.实现了交叉关注. 交叉关注:用于整个应用程序,又不适合放在某个局部位置的功能. 过滤器是.NET的注解属性(Attribute),它们对请求 ...

  6. Selenium 上传文件失败,解决办法一

    昨个改程序遇到一个问题,UI上面有需要上传文件的地方.但是我不知道怎么让Selenium完成 点击上传文件按钮->在弹出的文件选择窗口中选择路径和文件,点确定. 要知道弹出窗口属于window的 ...

  7. Scrapy 初体验

    开发笔记 Scrapy 初体验 scrapy startproject project_name 创建工程 scrapy genspider -t basic spider_name website. ...

  8. WeMall微信商城源码插件代金券部分代码

    WeMall微信商城源码插件Coupon代金券代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php na ...

  9. ng-class 用法

    很长时间不写页面很多angualrjs的指令用法忘了,搜搜网上的千篇一律“不全”: 下面我把ngclass的用法列出来!(注:网上只有2种,我补充一种三维运算) 1:   ng-class=" ...

  10. ubuntu查看安装的cuda toolkit自带的工具及其他安装文件

    原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5253672.html 1.查看工具 默认目录为:local,进入local:cd /usr/loc ...