java 基础知识五 数组
数组
保存的是一组有顺序的、具有相同类型的数据。
同一个数组中所有数据元素的数据类型都是相同的。
可以通过数组下标来访问数组,数据元素根据下标的顺序,在内存中按顺序存放
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 基础知识五 数组的更多相关文章
- 数组、栈、堆(java基础知识五)
1.数组概述.定义格式 * A:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引用数据类型. * B:数组定义格式 格式1:数据类型[ ...
- Java基础知识系列——数组
数组是我们在编程中常用到的一种数据结构. 数组创建有三种方式,以int类型为例: 1.int value[] = new int[]{1,2,3,4,5}; //{}中的是元素 2.int value ...
- C语言基础知识(五)——数组与指针的等价表示
void f(void) { int * p; int a[3] = {1,2,3}; p = a; printf("%d %d", a[0], p[0], *(a+1), *(p ...
- 第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- java基础知识回顾之---java String final类普通方法
辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /* * 按照面向对象的思想对字符串进行功能分类. * ...
- Java 基础知识总结
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.数据类型: 数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte 8位 (by ...
- Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
- 毕向东—Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
随机推荐
- 【openstack N版】——可视化服务horizon
一. openstack可视化服务horizon 1.1dashboard介绍 仪表盘依赖于功能核心服务,包括身份,图像服务,计算和网络两种(neutron)或传统网络(nova-neutron)与独 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven
github地址,点这里. 项目效展示,点这里.账号:admin 密码:123456 下一篇文章开始,所有的项目源码都是与maven整合后的代码了,所以这一篇讲一讲maven. 1.简单介绍 我们看一 ...
- Java第三天
0.注释: 目的:方便其他人阅读理解我们的代码 三种: // 单行注释,进行解释 /**/ 多行注释 /***/ 多行注释 (/***/注释通常用于方法,函数注释,在调用写好的方法或是函数时可以通过点 ...
- PHP会话控制Session与Cookie
理解会话控制的概念: 阅读过HTTP协议相关资料的同学都会知道HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议,所谓无状态,指的是不会维护http请求数据,http请求是 ...
- js 封装原生ajax
jquery框架的ajax方法固然好用,但是假如某天我们的项目不能引入jquery或项目需求很简单,没有很多交互功能,只需要ajax,这时引入jquery库会造成资源浪费,也会显得页面臃肿.这时我们就 ...
- JSP +++SERVIET总复习
一. JSP基础概念 软件架构 B/S架构:Browser/Server,浏览器-服务器 最大的优点就是:一次部署,处处访问. C/S架构:Client/Server,客户端-服务器 功能.事件丰富, ...
- SPM HW1 A project
项目分析 --民航航班异常轨迹可视分析 最近完成的一个项目是一个可视化大作业--民航航班异常轨迹可视分析.要求利用已给的8G飞机的飞行记录数据,将飞机的飞行轨迹在浏览器中进行飞行轨迹高维可视化以及对异 ...
- JavaScript 再认识(一):Function调用模式对this的影响
近来,学习了一下<JavaScript精粹>,读到了函数这章,理清了JavaScript中this在不同调用模式下的指向. 1.Function调用模式:Function是JavaScri ...
- JAVA基础知识(1)
1.JAVA的三大体系:JME(微缩版),JSE(标准版),JEE(企业版): 2.JAVA的三大核心机制:JAVA虚拟机,垃圾回收机制,代码安全性检测 3.java开发集JDK 4.java编译器j ...
- 谷歌开源图片压缩算法Guetzli实测体验报告
谷歌大神又出开源新技术啦,这次是对JPEG格式的图片采用全新算法重新编码,输出的图片还是JPEG但是图片大小明显缩小,而质量不但没有损失,甚至还更加优化,速速来体验一把. 一.环境安装 下载谷歌开源软 ...