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 ...
随机推荐
- BeautifulSoup简述
网页解析器 从网页中提取有价值数据的工具 网页解析器种类 正则表达式 (模糊匹配) html.parser (结构化解析) BeautifulSoup第三方插件 (结构化解析,相对比较强大) lxml ...
- asp.net EF+MVC+Bootstrap 通用后台管理系统
需要源码,请加QQ:858-048-581 开发环境: VS2012或以上 数据库: SQL Server 2008R2或以上 基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级 ...
- 【Unity优化】我所理解的IL指令
版权声明:本文为博主原创文章,欢迎转载.请保留博主链接:http://blog.csdn.net/andrewfan 指令格式 英文单词全写 指令解释 nop no operation perform ...
- maven lean install 的时候出错 Failed to clean project
问题解决1 : 这种情况是属于 本地有多个 java 线程,关掉其中不用的,或者 都关闭就可以了. 问题解决 2 : Caused by: org.springframework.beans.f ...
- .NET基础笔记(C#)
闲着没事就把以前学习时的笔记拿出来整理了一下,个人感觉有点用,就想拿出来跟园友共享一下.有些基础性的内容比如基本概念.语法什么的就不发了. 内容:1.构造方法(函数) 2.继承 3.访问修饰符 ...
- LSTM模型与前向反向传播算法
在循环神经网络(RNN)模型与前向反向传播算法中,我们总结了对RNN模型做了总结.由于RNN也有梯度消失的问题,因此很难处理长序列的数据,大牛们对RNN做了改进,得到了RNN的特例LSTM(Long ...
- 关于使用微信js上传图片 笔记
微信js初始化时需要签名,先获取签名(java代码): 1.获取jsapi_ticket,此数据自己保存,有效时长为7200秒 private String getJsticket(String to ...
- 对spring web启动时IOC源码研究
研究IOC首先创建一个简单的web项目,在web.xml中我们都会加上这么一句 <context-param> <param-name>contextConfigLocatio ...
- @Autowired 注释对在哪里和如何完成自动连接提供了更多的细微的控制。
1.@Autowired 可以用在多个地方,在 setter 方法上,属性上 或者 带有多个参数的任意方法上. Setter 方法中的 @Autowired. 当 Spring遇到一个在 setter ...
- Calender设置固定时间遇到的问题
在使用Calender获取实例,设置成UTC时区时,发现比我们常规的月份多了一个月: 示例代码如下: Calendar calendar = Calendar.getInstance(TimeZone ...