数组知识点梳理
来源:互联网 发布:java链表实现 编辑:程序博客网 时间:2024/06/05 15:47
定义:
数组就是一个变量,用于将相同数据类型的数据存储在内存中,数组的每一个数据类型元素都属于同一数据类型。
语法:
- 声明数组:
int [ ]socres; int scores[ ];
- 声明+分配空间:
int [ ]scores=new int[30]; int scores [ ]=new int [30];
- 赋值:
public static void main(String[] args) { // 赋值方法1(逐个赋值) int[] a=new int[3]; a[0]=44; a[1]=66; a[2]=77; System.out.println("数组长度:"+a.length+","+a[1]); //2和3方法无法分配空间,默认为赋值多少就是多少 //赋值方法2 int b[]={44,66,77}; System.out.println("数组长度:"+b.length+","+b[1]); //赋值方法3(new int[]中的int必须为空) int c[]=new int[]{44,66,77}; System.out.println("数组长度:"+c.length+","+c[1]); //直接创建并赋值必须一并完成,以下是错误的:int[]score;score={50,40}; }
数组元素默认类型:
- int:0
- double:0.0
- char:‘\u0000’
- boolean:false
数组排序
public static void main(String[] args) { int scores[]={55,44,32,56,77,66}; for(int i=0;i<scores.length;i++){ System.out.println(scores[i]); } //只有Arrays.sort(scores)升序方法,无降序方法,降序需要改变for循环的操作 Arrays.sort(scores); System.out.println("------升序-----------"); for(int i=0;i<scores.length;i++){ System.out.println(scores[i]); } System.out.println("-------降序----------"); //注意是scores.length-1,否则下标越界 for(int i=scores.length-1;i>=0;i--){ System.out.println(scores[i]); } }}
字符和数字的升降序(Array.sort()方法应用):
public static void main(String[] args) { int scores[]={55,44,32,56,77,66}; for(int i=0;i<scores.length;i++){ System.out.println(scores[i]); } //只有Arrays.sort()升序方法,无降序方法,降序需要改变for循环的操作 Arrays.sort(scores); System.out.println("------升序-----------"); for(int i=0;i<scores.length;i++){ System.out.println(scores[i]); } System.out.println("-------降序----------"); //注意是scores.length-1,否则下标越界 for(int i=scores.length-1;i>=0;i--){ System.out.println(scores[i]); } //字母升降序 String code[]={"as","sf","sr","ews","es","ds"}; for(int i=0;i<code.length;i++){ System.out.println(code[i]); } //只有Arrays.sort()升序方法,无降序方法,降序需要改变for循环的操作 Arrays.sort(code); System.out.println("------升序-----------"); for(int i=0;i<code.length;i++){ System.out.println(code[i]); } System.out.println("-------降序----------"); //注意是scores.length-1,否则下标越界 for(int i=code.length-1;i>=0;i--){ System.out.println(code[i]); } }
插入元素并排列顺序
public static void main(String[] args) { // TODO Auto-generated method stub { int list[]=new int[6]; list[0]=95; list[1]=86; list[2]=73; list[3]=68; list[4]=53; int num=77; int index=0; for(int i=0;i<list.length;i++){ if(num>list[i]){ index=i; break; } } System.out.println("下标:"+index); for(int j=list.length-1;j>index;j--){ //list[5]=list[4]以此类推到list[inedx+1]为止 list[j]=list[j-1]; } System.out.println("成绩:"); list[index]=num; for(int k=0;k<list.length;k++){ System.out.println(list[k]); } } }
Arrays类常用方法
Arrays.equals(array1,array2):比较两个数组是否相等
public static void main(String[] args) { // TODO Auto-generated method stub { int arr1[]={20,20,20}; int arr2[]=new int[]{20,20}; System.out.print(Arrays.equals(arr1, arr2)); } }
Arrays.sort(array):升序(代码略,见前文)
Arrays.toString(array):将一个数组转换成字符串
public static void main(String[] args) { // TODO Auto-generated method stub { int arr1[]={20,20,20}; //输出结果[20, 20, 20] System.out.print(Arrays.toString(arr1)); } }
Arrays.fill(array,val):将所有数组元素赋值为val
public static void main(String[] args) { // TODO Auto-generated method stub { int arr1[]=new int[5]; Arrays.fill(arr1, 20); //输出结果[20, 20, 20, 20, 20] System.out.print(Arrays.toString(arr1)); } }
Arrays.copyOf(array,length):将数组赋值为一个长度为length的新数组
public static void main(String[] args) { // TODO Auto-generated method stub { int arr1[]=new int[5]; Arrays.fill(arr1, 20); int arr2[]=Arrays.copyOf(arr1, 8); //输出结果[20, 20, 20, 20, 20, 0, 0, 0] System.out.print(Arrays.toString(arr2)); } }
Arrays.binarySearch(array,val):查询元素val在数组中的下标
public static void main(String[] args) { // TODO Auto-generated method stub { int arr1[]=new int[]{20,30,21,22,39}; //输出结果3 System.out.print(Arrays.binarySearch(arr1, 22)); } }
二维数组
定义:从内存分配原理上说,Java只有一维数组没有二维数组,二维数组只不过是一堆一维数组,其中每个数组元素又是数组类型而已,例如,int s[][]=new int [1][2]相当于s[0]中有2个数组元素s[0][0]和s[0][1]。
语法:
public static void main(String[] args) { { // 赋值方法1(逐个赋值) int[][] a=new int[3][4]; a[0][1]=44; a[0][2]=66; a[2][1]=77; System.out.println("数组长度:"+a.length+","+a[2][1]); //2和3方法无法分配空间,默认为赋值多少就是多少 //赋值方法2 int b[][]={{1,2,3},{22,3},{4,5,6}}; System.out.println("数组长度:"+b.length+","+b[1][0]); //赋值方法3(new int[][]中的[][]必须为空) int c[][]=new int[][]{{44,66,77},{23,4,5}}; System.out.println("数组长度:"+c.length+","+c[1][1]); //直接创建并赋值必须一并完成,以下是错误的:int[]score;score={50,40}; } }
遍历:
public static void main(String[] args) { { int[][]a={{22,34,4},{12},{33,44}}; for(int i=0;i<a.length;i++){ //注意:a[i].length的使用 for(int j=0;j<a[i].length;j++){ System.out.println(a[i][j]); } } } }
阅读全文
1 0
- 数组知识点梳理
- JAVA基础知识点梳理四:数组
- 软件设计师知识点梳理
- 软件设计师知识点梳理
- 函数模板知识点梳理
- 类模板知识点梳理
- 博客中知识点梳理
- Memcache知识点梳理(转)
- XPath知识点梳理
- 操作系统知识点梳理
- C语言知识点梳理
- Memcache知识点梳理
- JS知识点梳理
- Memcache知识点梳理
- Memcache知识点梳理
- Hibernate知识点梳理
- Spring知识点梳理
- Memcache知识点梳理
- spring cloud feign做rpc
- LeetCode——376. Wiggle Subsequence
- C语言学习笔记(七)---一些刷题记录
- ctrip-apollo windows环境部署
- 数据结构--顺序栈的实现(C语言)
- 数组知识点梳理
- 为什么不要把ZooKeeper用于服务发现
- 二维数组练习(二维数组+for+if...else)
- JS中的逻辑与(&&)逻辑或(||)
- Ubuntu 16.04下安装ss服务端
- ZooKeeper的Quorums机制
- Python打印乘法表
- C语言文件读写函数——fputc和fgetc
- HTTP协议简介