前面一直没用目录,感觉还是用一下清晰一点
前面的也懒得改了orz
有时间有心情的时候可能会改一下
遍历二维数组
int a[][] = {{4,3},{1,2}};
int i=0;
for(int x[]:a) {
i++;
int j=0;
for(int e:x) {
j++;
if(i==a.length&&j==x.length) {
System.out.print(e);
}else {
System.out.print(e+"、");
}
}
}
也没啥特殊,就是一维数组的特殊遍历方法
for(int x:a)
1.fill( int[] a, int value )
将指定的int值分配给int型数组的每个元素
a:要进行元素替换的数组
value:要存储数组中的所有元素的值
把a中的元素全部换成value
import java.util.Arrays;
public class HelloJava {
public static void main(String[] args) {
int a[] = new int[]{1,2,3,4,5};
Arrays.fill(a, 8);
for(int i:a) System.out.println(i);
}
}
输出结果:
8
8
8
8
8
2.fill( int[] a, int fromIndex, int toIndex, int value )
将指定的int值分配给int型数组指定范围内的每个元素
从fromIndex(包括)一直覆盖到toIndex(不包括)
若指定范围大于数组的长度,会报错 ArrayIndexOutOfBoundsException
import java.util.Arrays;
public class HelloJava {
public static void main(String[] args) {
int a[] = new int[]{1,2,3,4,5};
Arrays.fill(a,1,3,9);
for(int i:a) System.out.println(i);
}
}
输出结果:
1
9
9
4
5
Arrays.sort(object)
对任意类型数组进行升序排序
import java.util.Arrays;
public class HelloJava {
public static void main(String[] args) {
int a[] = new int[]{5,6,2,3,7};
Arrays.sort(a);
for(int i:a) System.out.println(i);
}
}
2
3
5
6
7
import java.util.Arrays;
public class HelloJava {
public static void main(String[] args) {
String a[] = new String[]{"我","是","天","才"};
Arrays.sort(a);
for(String i:a) System.out.println(i);
}
}
天
我
才
是
1.copyOf()
copyOf(arr, int newlength)
arr:要进行复制的数组
newlength:复制后新数组的长度。若大于arr的长度,多出部分用0填充(int类型;char类型用null填充)。若小于arr的长度,则截取arr至新数组填满为止。
import java.util.Arrays;
public class HelloJava {
public static void main(String[] args) {
int a[] = new int[] {1,2,3,4,5};
int b[] = Arrays.copyOf(a, 5);
for(int i:b) System.out.println(i);
}
}
1
2
3
4
5
2.copyOfRange()
copyOfRange(arr, int fromIndex, int toIndex)
arr:要进行复制的数组
fromIndex:指定开始复制数组的索引位置。必须在0至整个数组长度之间。新数组包括索引是fromIndex的元素。
toIndex:要复制范围的最后索引,可以大于数组的长度新数组不包括索引是toIndex的元素。
import java.util.Arrays;
public class HelloJava {
public static void main(String[] args) {
int a[] = new int[] {1,2,3,4,5};
int b[] = Arrays.copyOfRange(a,1,3);
for(int i:b) System.out.println(i);
}
}
2
3
使用二分搜索法来搜索指定数组,以获得指定对象。
返回元素的索引值
1. binarySearch(Object[],Object key)
a:要搜索的数组
key:要搜索的值
如果key在数组里,则返回搜索值的索引;否则返回-1或==“-”插入点==(插入点前加个符号)(总而言之就是负数)
插入点:所搜建将要插入数组的那一点,即第一个大于此键的元素索引
也就是升序排序后有序插入该元素的位置
例如下面的例子:
查找10的时候,元素排完序以后应该是{1,4,5,7,9},所以10的插入点应该在最后,也即6,所以返回-6。
因为是二分查找,查找前需要先排序
import java.util.Arrays;
public class HelloJava {
public static void main(String[] args) {
int a[] = new int[] {5,4,1,7,9};
Arrays.sort(a);
int b = Arrays.binarySearch(a, 4);
System.out.println(b);
int c = Arrays.binarySearch(a, 10);
System.out.println(c);
}
}
1
-6
2. binarySearch(Object[], int fromIndex, int toIndex, Object key)
a:要进行搜索的数组
fromIndex:开始位置(包含)
toIndex:结束位置(不包含)
key:要搜索的元素
import java.util.Arrays;
public class HelloJava {
public static void main(String[] args) {
int a[] = new int[] {5,4,1,7,9};
Arrays.sort(a);
int b = Arrays.binarySearch(a,2,4,4);
System.out.println(b);
int c = Arrays.binarySearch(a,0,4,4);
System.out.println(c);
}
}
-3
1
指定范围大于等于数组长度,会报错