Java知识碎片整理(1)——数组相关
来源:互联网 发布:python参考手册 第5版 编辑:程序博客网 时间:2024/05/10 17:08
2016/10/6
数组是最常见的一种数据结构,是同类型的,用一个标识符封装在一起的基本数据序列或对象序列(在Java中所有的东西都是对象,但在C++中可能是对象,结构体等)。
数组使用:
声明——>内存分配——>初始化
声明:
int arr[];String arr2[];
内存分配:
arr=new int[5];
使用new关键字为数组分配内存时,整形数组各个元素的初始值均为0。
初始化:
int arr[]=new int[]{1,2,3,5,25};int arr2[]={34,23,12,6};
二维数组:
int arr[][];arr=new int[2][4];
二维数组遍历:
int b[][]=new int{{1},{2,3},{4,5,6}};for(int i=0;i<b.length;i++){ for(int j=0;j<b[i].length;j++){ Systemm.out.print(b[i][j]); } System.out.println();}
数组操作:java.util.Arrays类中包含着数组操作的方法。
填充替换数组元素:fill(type[] a,type value)
int arr[]=new int[5];Arrays.fill(arr,8);for(int i=0;i<arr.length;i++){ System.out.println(arr[i]);}
数组排序方法:sort(object)
数组复制方法:
copyOf(arr,int)
copyOfRange(arr,int fromIndex,int toIndex)
数组查询:
二分搜索法搜索指定数组:
binarySearch(object[] a,object K);
数组排序算法:
冒泡排序:
public void sort(int[] array){ for(int i=1;i<array.length;i++){ for (int j=0;j<array.length-i;j++){ if(array[j]>array[j+1]){ int temp=array[j]; array[j]=array[j]+1; array[j+1]=temp; } } }}
直接选择排序:
比冒泡排序稍快
public void sort(int[] array){ int index; for(int i=1;i<array.length;i++){ index=0; for{int j=1;j<array.length-i;j++}{ if(array[j]>array[index]){ index=j; } } int temp=array[array.length-i]; array[array.length-i]=array[index]; array[index]=temp; }}
反转排序:
反转排序就是以相反的顺序把原有数组的内容重新排序
public void reverseSort(int[] array){ int temp; int len=array.length; for(int i=0;i<len/2;i++){ temp=array[i]; array[i]=array[len-1-i]; array[len-1-i]=temp; }}
2017/2/3批注:
数组相关操作非常多也非常重要,排序,查找算法也是求职面试的必考内容。标记,阅读以下java.util.Arrays的源码,重写本篇博客。
0 0
- Java知识碎片整理(1)——数组相关
- JAVA知识碎片整理-----数组
- Java知识碎片整理(2)——异常处理
- Java知识碎片整理(4)——抽象类
- C++知识碎片整理(1)——数组作为函数输出值
- Java知识碎片整理(5)——static关键字与单例设计模式
- C++知识碎片整理(8)——生成随机数
- C++知识碎片整理(9)——Vector&List
- C++知识碎片整理(12)——typedef关键字
- C++知识碎片整理(13)——extern
- 知识碎片 Java面试题相关链接
- C++知识碎片整理(7)——inline(内联)函数
- C++知识碎片整理(2)——字符串大小写转换
- C++知识碎片整理(3)——输出数据到txt
- C++知识碎片整理(4)——string,int互转
- C++知识碎片整理(5)——个人文件工具类
- C++知识碎片整理(11)——自用数学函数
- 知识碎片之整理
- Entering query
- 使用Code::Blacks运行不了c++程序
- HTML5+JS游戏开发模块----canvas打字游戏升级版
- 对10个数进行排序
- Matlab2014a在Ubuntu16.04中的安装及遇到的问题
- Java知识碎片整理(1)——数组相关
- 分时系统与实时系统
- 【Search&String Algorithm Training】Xiper的奇妙历险(2)
- 编程相关的知识点细节
- 纵横字谜的答案
- uploadify+java实现多文件上传和预览
- 有关指针(2)
- 【POJ 3688 Cheat in the Game】+ dp + 巴什博弈
- GPUImage--视频流处理之AVCaptureVideoDataOutputSampleBufferDelegate