------Java培训、Android培训、iOS培训、.Net培训、期待与您交
Java中的数组
Java中的数组用来存储同一种数据类型的数据,数组长度固定,数组中存放的数据必须为同一中类型。数组中每一个元素都有固定的下标值。
数组的定义:
方式一:
int[] arras=new int[4];
声明数组和数组的长度,但是数组里面没有数据。
方式二:
int[] arrass=new int[]{1,2,3,4};
声明数组和数组的长度以及数组里面的内容。
Java中一维数组在内存中存放方式图解:
Java中二维数组在内存中的存放图解:
Java数组中常用方法:
arras.length使用length属性可以获取数组的长度。因为数组的开始的指针为0所以数组最后一个下标值为数组的长度减一。
数组继承与Object类所以数组中有Object类中的所有公用方法。
数组的赋值:
数组的赋值方式分为两种:
第一种方式就是在初始化数组的时候就给数组赋值。
int[] arrass=new int[]{1,2,3,4};
第二种方式为在数组初始化的时候只定义数组的存储类型,和数组的长度。
在给数组赋值:
int[]arras=new int[4];
arras[0]=1;
arras[1]=2;
arras[2]=3;
arras[3]=4;
数组中取值方式:
可以使用角标值取出特定角标位置的值上面赋值方式一致。
Int a= arras[2];
也可以使用for循环遍历整个数组取出数组中所有的值:
int[]arras=new int[4];
arras[0]=1;
arras[1]=2;
arras[2]=3;
arras[3]=4;
for(inti=0;i<arras.length;i++){
System.out.println(i);
}
数组中的排序方式:
冒泡排序方法:
冒泡排序方法为数组中相邻元素进行进行比较,比较第一次把数组中最大的值放在了数组的最后位置,比较第二次把数组中第二大的值放在了数组的倒数第二个位置。
以此循环往复,一直把数组中的全部数据从最后排序到前端,也就是一共对数组中的数据进行了数组长度-1此的比较。
数组元素之间的比较也根据数组比较的次数而变小,数组元素比较的次数为数组长度-1-数组比较的次数,
冒泡排序方法图解:
代码实例:
/**
* 冒泡排序
* 外循环控制一共对数组进行了多少次的比较
* 内循环控制一共对数组元素之间进行了多少次的比较。
*/
int temp;
for(intj=0;j<arras.length-1;j++){
for(inti=0;i<arras.length-1-j;i++){
if(arras[i]>arras[i+1]){
temp=arras[i];
arras[i]=arras[i+1];
arras[i+1]=temp;
}
}
}
运行结果如下图所示:
Java中操作数组的工具类:
Arrays类用来操作数组在类中实现了一下常用的操作数组的方法:
比如对数组经行排序:
使用:static void sort(int[] a)
即可对数组a进行排序
此方法在Arrays类中有很多重载方法,不仅可以对基本类型的数组进行排序,还可以对object类型的数据进行排序:
在对object类型的数据进行排序的时候数组中存放的所有元素都必须实现 Comparable 接口。假如用户想要按照自己定义的规则进行排序,则必须重写Comparable接口中compareTo方法。
对数组进行查找的方法:
public static int binarySearch(byte[] a,byte key)
该方法使用二分搜索法来搜索指定的数组,以获得指定的值的下标值。
注意:使用该方法查找指定的值的数组必须经过排序以后才能够使用,否则查找出来的坐标值不正确。
若数组中查找的值存在两个或多个,则返回最后一个值出现的下标值的位置。
若数组中不包含要查找的值则返回负数。返回的负数为当该值如果存在时的下标值-1;
数组的复制:
使用Arrays中的copyOf(short[] original, int newLength)
复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
把数组复制到新的数组中,返回新的数组
使用arrays中的static byte[] copyOfRange(byte[] original,int from, int to)
将指定数组的指定范围复制到一个新数组。
可以把数组中的某一段数据复制到新的数组当中去。
StringBuffer类的使用;
StringBuffer类是用来操作字符串的字符串缓存区类。
该类为线程安全的,可用与多线程中,但是由于线程安全机制,此类运行效率低。
该类中的常用方法:
append(char c)
将字符c插入到字符串的结尾初。该方法有很多重载方法,可以将字符数组,和字符数组中的一段数据插入到该缓冲区中。
StringBuffer insert(int offset, char c)
将 char 参数的字符串表示形式插入此序列中。
将字符c插入到该字符缓存区的offset下标位置。
该方法有多个重载方法可以将基本数据类型,char[]数组,和object和String类型的数据插入到StringBuffer中去。
StringBuffer | reverse() |
使用reverse()方法可以将字符串进行反转。
StringBuilder类的使用介绍:
StringBuilder类和StringBuffer类功能上一致,但是该类为线程不同步的,运行在多线程中会出现线程安全问题,但是该类的执行效率要比StringBuffer类要高。