//Arrays方法总结
Arrays.toString(arr)//直接输出一维数组
System.out.println(Arrays.deepToString(erwei));//直接输出二维数组
Arrays.sort(arr)//将数组按升序排序
Arrays.binarySearch(arr,需要查找的元素)//在此之前要先排序
List<String> stringList = Arrays.asList("Welcome", "To", "Java","World!");//使用该方法可以返回一个固定大小的List
List<Integer> intList = Arrays.asList(1, 2, 3, 4);//使用该方法可以返回一个固定大小的List
boolean b = Arrays.binarySearch(new int[]{1,2,3,4,5,6,7,8,9},6);//返回该数在数组的位置,返回int类型(注意不是boolean)
//将数组的部分值转入另一个数组中
String[] name = {"Liz", "John", "Eric", "Alan" };
String[] copy = Arrays.copyOf(name,3);//copy为{"Liz", "John", "Eric"}
String[] rangeCopy = Arrays.copyOfRange(name,2,name.length);//rangeCopy为{"Eric", "Alan" }
Arrays.sort(name,0,2);//name数组中只前三个数排序,name变为[John, Liz, Eric, Alan]
Arrays.sort(name);//name变为[Alan, Eric, John, Liz]
//判断name1和name2两个一维数组是否相同,返回布尔值
Arrays.equals(names1, names2);
Arrays.deepEquals(stuGrades1, stuGrades2)//判断两个二维数组是否相同
//fill
int[] i = new int[5];
Arrays.fill(i,1);//则i数组变为{1,1,1,1,1}
//Array([]):最高效;但是其容量固定且无法动态改变; ArrayList: 容量可动态增长;但牺牲效率; 应尽可能使用Array,无法确定数组大小时才使用ArrayList!
//不过Arrays类没有提供删除方法,而ArrayList中有remove()方法,不知道是否是不需要在Array中做删除等操作的原因(因为此时应该使用链表)
//每当执行Add、AddRange、Insert、InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果是,它就会以当前容量的两倍来重新构建一个数组,将旧元素Copy到新数组中,然后丢弃旧数组,在这个临界点的扩容操作,应该来说是比较影响效率的。
//ArrayList存入对象时,抛弃类型信息,所有对象屏蔽为Object,编译时不检查类型,但是运行时会报错。
//ArrayList与数组的区别主要就是由于动态增容的效率问题了
//将arraylist转化为list
public static void main(String[] args) {
List list=new ArrayList();
list.add("王利虎");
list.add("张三");
list.add("李四");
int size=list.size();
String[] array=new String[size];
for(int i=0;i<list.size();i++){
array[i]=(String)list.get(i);
}
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("王利虎");
list.add("张三");
list.add("李四");
int size=list.size();
String[] array = (String[])list.toArray(new String[size]);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
//将array转化为arraylist
public static void main(String[] args) {
String[] array=new String[3];
array[0]="王利虎";
array[1]="张三";
array[2]="李四";
List<String> list=new ArrayList<String>();
for(int i=0;i<array.length;i++){
list.add(array[i]);
}
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
public static void main(String[] args) {
String[] array=new String[3];
array[0]="王利虎";
array[1]="张三";
array[2]="李四";
List<String> list=Arrays.asList(array);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
public static void main(String[] args) {
List<String> list = Arrays.asList("王利虎","张三","李四");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
//声明数组
String[] aArray = new String[5];
String[] bArray = {"a","b","c", "d", "e"};
String[] cArray = new String[]{"a","b","c","d","e"};
//输出数组
int[] intArray = { 1, 2, 3, 4, 5 };
String intArrayString = Arrays.toString(intArray);
// print directly will print reference value
System.out.println(intArray);
// [I@7150bd4d
System.out.println(intArrayString);
// [1, 2, 3, 4, 5]
//从一个数组创作数组列表
String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
System.out.println(arrayList);
// [a, b, c, d, e]
//检查一个数组是否包含某个值
String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b);
//连接两个数组
int[] intArray = { 1, 2, 3, 4, 5 };
int[] intArray2 = { 6, 7, 8, 9, 10 };
// Apache Commons Lang library
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
//声明一个内联数组
method(new String[]{"a", "b", "c", "d", "e"});
//把提供的数组放到一个字符串里
String j = StringUtils.join(new String[] { "a", "b", "c" }, ", ");
System.out.println(j);
//将一个数组列表转化成数组
String[] stringArray = { "a", "b", "c", "d", "e" };
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(stringArray));
String[] stringArr = new String[arrayList.size()];
arrayList.toArray(stringArr);
for (String s : stringArr)
System.out.println(s);
//将一个数组转化为集
Set<String> set = new HashSet<String>(Arrays.asList(stringArray));
System.out.println(set);
//[d, e, b, c, a]
//逆向一个数组
int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
//移除数组中的一个元素
int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
System.out.println(Arrays.toString(removed));
//将整数转化成字节数组
byte[] bytes = ByteBuffer.allocate(4).putInt(8).array();
for (byte t : bytes) {
System.out.format("0x%x ", t);
}
//二维数组
int[][] a = new int[3][4];
System.out.println(a);//数组的地址
System.out.println(a.length);//数组一维数组的个数,即行数3
System.out.println(a[0].length);//数组意味数组中的元素个数,及列数4
//打印数组的四种方式
System.out.println(Arrays.toString(arr));
for(int aaa:arr){
System.out.println(aaa);
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
System.out.println(Arrays.asList(arr));