java数组的初始化
int a[]=new int[4];,对于这种类型创建的数组初始化是0
int a[]={1,2,3};
java的标准输入输出
- Scanner类,导入java。util。*;的包
常用的函数有hasNext() 有一个字符串
hasNextInt() used for int
hasNextLine() used for line
next() 输入下一个字符串,注意没有空格
nextLine下一行输入到String类型 的一个变量里面可以包括空格
nextInt nextDouble nextFloat 同理 - PrintWritter类
注意这个类有一个构造时候的参数是autoflush,这个选择为true的话在println的时候会自动输出,但是呢,对于print不会自动输出,还是需要手动的调用flush函数才能输出。
Scanner cin =new Scanner(System.in);
PrintWriter xout=new PrintWriter(System.out,true);
String x;
xout.println(1);
// xout.flush();
// System.out.println("1");
// while(cin.hasNext()){
// x=cin.nextLine();
System.out.println(x);
// xout.print(1);
// }
// System.out.println("sdf");
多维数组的输出 arrays.deepToString()
int c[][]={{12,2,3},{3,2,1}};
System.out.println(Arrays.toString(c));
// [[I@1b6d3586, [I@4554617c]
//
System.out.println(Arrays.deepToString(c));
// [[12, 2, 3], [3, 2, 1]]
arrays.fill()
Arrays.fill(c[0],1);
System.out.println(Arrays.deepToString(c));
// Arrays.fill(一维数组,开始,结束,填充值);这样子就可以往里面填充数据了
```
## Arrays.toList()
```java
// 容器的初始化的时候,可以赋值为一个collection类型的对象,而我们的Arrays.asList()可以把一个数组或者一段序列{1,2,3}转化为list类型。
Integer a[]={1,2,3};
ArrayList<Integer> x=new ArrayList<>( Arrays.asList(a));
List<Integer> xx=Arrays.asList(a);
// xx.add(10);不可以直接使用它返回的list,因为它返回的是一个数组不支持我们增加长度。容器是支持的,所以我们最好是使用一个arralist包装一下。
// Exception in thread "main" java.lang.UnsupportedOperationException
// at java.util.AbstractList.add(AbstractList.java:148)
// at java.util.AbstractList.add(AbstractList.java:108)
// at test.main(test.java:19)
// 需要注意的是容器不能有基本数据类型,并且对于int数组不能自动转化为integer数组
// 对于继承自collecttion的对象都有collection。addAll函数,这个函数只能接受collection对象
// 但是collectons。addAll()十分的灵活,第一个是一个collection的对象,接着可以是一个collection也可以是一个变参数的列表
// Collections.addAll(x,4,5);
// [1, 2, 3, 4, 5]
// Collections.addAll(x,{4,5});不可以
// x.addAll({1,2,3});不可以
// System.out.println(Arrays.toString(a));
// 对于数组来说必须使用toString来得到他的输出,对于容器来说直接打印就可以
数组的复制
//数组的复制system.arraycopy()
int x[]=new int[10];
int y[]=new int[11];
Arrays.fill(x,2);
System.arraycopy(x,0,y,0,2);
System.out.println(Arrays.toString(y));
数组的比较
//数组的复制system.arraycopy()
int x[]=new int[10];
int y[]=new int[11];
Arrays.fill(x,2);
System.arraycopy(x,0,y,0,2);
System.out.println(Arrays.toString(y));
//数组的比较 就是对数组里面的对象引用调用equals函数,对于基本的数据类型我们就是调用包装器类的equals
System.out.println(Arrays.equals(x,y));
y=new int [10];
Arrays.fill(y,2);
System.out.println(Arrays.equals(x,y));
// [2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0]
//false
//true
Arrays。sort()
A is 65 in ascall table
a is 97 in ascall table
int x[]={21,5,468,46,1,351,684,6};
Arrays.sort(x);
System.out.println(Arrays.toString(x));
System.out.println(Arrays.binarySearch(x,5));
//[1, 5, 6, 21, 46, 351, 468, 684]
1
···
## Arrays.binarySearch()