java中数组常用方法

198 阅读4分钟
1>.
创建数组
1.
动态初始化:
int [] arrry=new int[]{1,2,3,4}
2.
静态初始化数组:
int []arry={1,2,3,4}
**
注意:
**
静态初始化的时候,数组元素个数和初始化数据类型格式是一致的
2>
使用数组
1.
在使用数组时要防止数组越界发生:下标访问操作有效范围是
[1,length]
例如:
Exception in thread
main
java.lang.ArrayIndexOutOfBoundsException: 100
at Test.main(Test.java:4)
,此异常就代表数组越界。
3>
遍历数组
1.for
循环:
int [] arrry=new int[]{1,2,3,4};
for(int i=0;i<array.length;i++){
System.out.println(array;)
}
2.for-each
int [] arrry=new int[]{1,2,3,4};
for(int x:array){
System.out.println(x);
}
for-each
for
循环的另外一种使用方式
.
能够更方便的完成对数组的遍历
.
可以避免循环条件和更新语句写错
.
4>.
数组的拷贝
:
指的是将一个数组的部分内容替换掉外汇返佣
http://www.fx61.com/
另一个数组的部分内容(必须是连续的)
1.System.arraycopy():
是被
native
所修饰的方法,特点是速度快
2.Array.copyof():
底层调用了
System.arrayCopy()
方法的,相对于上面的方法来说,速度相对较慢
3.Array.clone():
用法为原数组
.(
拷贝的数组
)
4.
拷贝对基本类型来说是深拷贝(互相没影响);
拷贝对引用类型来说是浅拷贝(改变一个对另一个有影响);
4.for
循环
5>.Arrays
常用函数
(
操作数组的工具类)需要导入:
import java.util.Arrays;
1.Array.equals
()用于比较两个数组是否相等
2.Array.sort
()用于对数组排序
3.Array.binarySearch
()用于在已经排序的数组中查找元素
4.Array.toString
()产生数组的
String
表示
6>.
二维数组
1.
数据类型
[][]
数组名称
=new
数据类型
[
行数
][
列数
]{
初始化数据
}
int[][]array=new int[3][3]{1,2,3,4};
for(int row=0;row<array.length,row++){
for(int col=0;col<array[row].length;col++){
int[][] arr = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
for (int row = 0; row < arr.length; row++) {
for (int col = 0; col < arr[row].length; col++) {
System.out.printf("%d\t", arr[row][col]);
}
System.out.println("");
}
}
}
1. arraycopy
方法原型:
public static void arraycopy(sourceArray,int index1,copyArray,index2,int length)
即从
sourceArray
index1
位置开始,后面
length
个元素,放到
copyArray
数组从
index2
的位置
注意这里的
index1,2
都是数组的索引,即数组的下标
如果
copyArray
数组长度小于
length
,程序会崩溃
实例:创建
main
方法,自行测试
void test_arraycopy()
{
int []a = {1,2,3,4,5};
int []b = {6,7,8,9,10};
System.arraycopy(a, 2, b, 3, 2);
System.out.println("\n
通过复制以后的到的数组为:
");
for(int i:b)
{
System.out.printf("%d ",i);
}
System.out.println();
}
运行结果:
通过复制以后的到的数组为:
6 7 8 3 4
2. copyOf
copyOFRange
方法:
copyOf
方法原型:
public static float[] copyOf(float []original,int newLength)
从数组的第一个元素开始复制,复制长度为
length
,若长度超过数组原长,则超出元素为默认值
0
该方法返回一个数组
void test_copyOf()
{
int []a = {11,22,33,44,55};
int []b = Arrays.copyOf(a, 7);
System.out.println("
测试
copyOf
函数,复制后得到的
b
数组为
");
for(int i:b)
{
System.out.printf("%d ",i);
}
System.out.println("\n
通过
toString
方法输出数组
\n"+Arrays.toString(b));
}
运行结果:
测试
copyOf
函数,复制后得到的
b
数组为
11 22 33 44 55 0 0
原数组长度为
5
length
7
,故复制后的数组最后两位为默认值
0
copyOfRange
方法原型:
public static double[] copyOfRange(double []original,int from,int to)
original
下标为
from
的位置开始复制,到
to-1
的位置结束,返回一个长度为
to-from
的数组
void test_arrayOfRange()
{
int []a = {55,33,44,22,11};
int []b = Arrays.copyOfRange(a, 1, 4);
System.out.println("
测试
copyOfRange
方法:
");
System.out.println(Arrays.toString(b));
}
运行结果:
测试
copyOfRange
方法:
[33, 44, 22]
3.
改进遍历数组的方法:
Arrays.toString(
数组名
)
for(
循环体,数组名
)
{
System.out.println
i
);
}
或者用
Arrays.toString(
数组名
)
方法
void print_array()
{
int []a = {1,2,3,4,5};
System.out.println("
采用改进方法遍历数组
a,
输出结果
:");
for(int i:a)
{
System.out.printf("%d ",i);
}
System.out.println("
调用
toString
方法输出数组
b");
System.out.println(Arrays.toString(b));
}
运行结果:
采用改进方法遍历数组
a,
输出结果
:
1 2 3 4 5
调用
toString
方法输出数组
b
[1, 2, 3, 4, 5]
4.
数组的排序:
sort
方法
该方法有两个函数原型:
public static void sort(doule a[])
public static void sort(doule a[],int start,int end);
第一种,将数组按升序全排序
第二种从索引为
start
到索引为
end-1
的位置,升序排序
void test_arrayOfRange()
{
int []a = {55,33,44,22,11};
int []b = Arrays.copyOfRange(a, 1, 4);
Arrays.sort(a, 1, 4);
Arrays.sort(b);
System.out.println("
排序后
b
数组为:
");
for(int i:b)
{
System.out.printf("%d ",i);
}
System.out.println("\n
排序后
a
数组为:
");
for(int i:a)
{
System.out.printf("%d ",i);
}
System.out.println();
}
运行结果:
排序后
b
数组为:
22 33 44
排序后
a
数组为:
55 22 33 44 11
5.
在数组中查找一个数的方法:
binarySearch
方法原型:
public static int binarySearch(double [] a,double number)
返回要寻找的数
number
的索引,若没查找到,则返回一个负数
void test_binarySearch()
{
int a[] = {1,2,3};
int x;
x= Arrays.binarySearch(a, 2);
System.out.println("
数组
a
为:
");
System.out.println(Arrays.toString(a));
System.out.println("
数字
x
在数组中的索引(下标)为
:"+x);
}
运行结果:
数组
a
为:
[1, 2, 3]
数字
x
在数组中的索引(下标)为
:1

更多技术资讯可关注:itheimaGZ获取