1.知识点1
静态方法操作数组。
2.数组转 List
package day19;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class ArrayDemo {
public static void main(String[] args) {
test();
}
public static void test(){
int[] arr1 ={1,2,3,4,5};
int[] arr2= {1,2,3,4,5};
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.equals(arr1,arr2));
// 好处:可以使用集合方法操作数组
System.out.println("数组转集合:");//数组转集合 因为数组方法有限
String[] sArr={" ssss","ssss","eeeeee"};
List<String> list =Arrays.asList(sArr);
Iterator iterator =list.iterator();
while (iterator.hasNext()){
String i= (String ) iterator.next();
System.out.println(i);
}
System.out.println(list);
2. 会改变数组长度的方法不能用
// list.add("asas");//java.lang.UnsupportedOperationException 数组长度是固定的
//所以能改变长度 的增删 clear sub .... 不能用
3.对象 与基本数据类型 list 的存储区别.
//2.如果数组中的是对象(String) ,那么转成集合时,直接将数组中的元素作为集合中的元素进行集合存储。
//3.如果数组中的元素是基本类型数值,那么会将[数组]作为集合中的元素进行存储。 集合中只有 arr 一个元素
int[] arr3= {1,2,3,4,5};
List<int[] > list3=Arrays.asList(arr3);
System.out.println("基本数据类型 list1 size="+list3.size());//1
Integer[] arr4= {1,2,3,4,5};
List<Integer > list4 =Arrays.asList(arr4);
System.out.println(" 对象 (引用数据类型) list4 size ="+list4.size());// 5
}
4.toString 经典实现 参考源码
public static String MytoString(int[] var0) {
if (var0 == null) {
return "null";
} else {
int var1 = var0.length - 1;
if (var1 == -1) {
return "[]";
} else {
StringBuilder var2 = new StringBuilder();
var2.append('[');
int var3 = 0;
while(true) {//省略条件判断,增加执行效率
var2.append(var0[var3]);
if (var3 == var1) {
return var2.append(']').toString();
}
var2.append(", ");
++var3;
}
}
}
}
}
toArray方法:集合转数组
作用:可以对集合中元素,操作的方法进行限定,不允许增删。只能查阅。
Collection 类: 两个方法的区别:
package cn.itcast.p3.toolclass.arrays.demo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ToArray {
public static void main(String[] args) {
/*
* 集合转成数组呢?
*
* 使用的就是Collection接口中的toArray方法。
*
* 集合转成数组:可以对集合中的元素操作的方法进行限定。不允许对其进行增删。
*
*
*/
List<String> list = new ArrayList<String>();
list.add("abc1");
list.add("abc2");
list.add("abc3");
/*
* toArray方法需要传入一个指定类型的数组。
* 长度该如何定义呢?
* 如果长度小于集合的size,那么该方法会创建一个同类型并和集合相同size的数组。
* 如果长度大于集合的size,那么该方法就会使用指定的数组,存储集合中的元素,其他位置默认为null。
*
* 所以建议,最后长度就指定为,集合的size。
*/
String[] arr = list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(arr));
}
}