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 ...
随机推荐
- Java Calendar.set 方法设置时间的问题
因项目需要,需要遍历一年中的其中几个月,获得每个月的用户数量. 变量有:开始时间--startDate,结束时间--endDate. 逻辑很简单:获取到开始时间的月份和结束时间的月份,然后得到月份差 ...
- Laravel路由和控制器的绑定
路由和控制器的关系 路由文件地址在\app\Http\routes.php,我们来看两种不同的路由. Route::get('/', function () { return view('welcom ...
- 中药饮片ERP案例
企业简介 [规模] 苏州市天灵中药饮片有限公司成立于2002年,为苏州首家中药饮片GMP认证企业.公司品牌“李良济”首创于1914年民国初,祖传三代,为中华老字号企业.目前,公司经营主要分为三大块:中 ...
- 讲一个使用jquery-slick旋转木马效果插件案例
效果展示连接 http://www.jqcool.net/demo/201405/jquery-slick/ 今天刚接触这个插件,被这插件搞的大脑风暴了 所以来记录一下使用方法 首先注意一点 不特别标 ...
- 《Shell脚本学习指南》学习笔记之自定义函数
Shell的函数在使用之前必须先定义,定义格式: [ function ] funname [()] { action; [return int;] } 可以带function fun()定义,也可以 ...
- spring exception
Spring MVC异常处理SimpleMappingExceptionResolver[转] (2012-12-07 13:45:33) 转载▼ 标签: 杂谈 分类: 技术分享 Spring3.0中 ...
- 唐伯猫的 sql server 2008 的安装和操作记录
在服务器win 2008 server r2 上安装sql 首先下载sql server 2008 ,云盘有存储sql,很多论坛也有下载SQLEXPRADV_x64_CHS.exe 双击sql s ...
- 属性property和字段的区别
在类中定义的一个成员变量叫字段,要把这个成员变量变成一个属性必须加上getter和setter方法
- RabbitMQ-从基础到实战(1)— Hello RabbitMQ
转载请注明出处 1.简介 本篇博文介绍了在windows平台下安装RabbitMQ Server端,并用JAVA代码实现收发消息 2.安装RabbitMQ RabbitMQ是用Erlang开发的,所以 ...
- poj 2892---Tunnel Warfare(线段树单点更新、区间合并)
题目链接 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...