#自用之数组
是一些自己在做题过程中遇到的小问题,通过百度或其他大神的博客进行了解决
public class test {
public static void main(String[] args) {
//创建数组
int[] arr1= {1,2,3};
//数组转换为集合
ArrayList arr2=new ArrayList();
for(int i=0;i<3;i++) {
arr2.add(arr1[i]);
}
//同种方式输出,内容不同
System.out.println(arr1);//为首地址
System.out.println(arr2);//为数组值
//值相同,但默认对应的类型不同
int num1=arr1[0];//
Object num2=arr2.get(1);
//比较数组内容是否相同
int[] arr3=new int[] {2,3,4};
boolean arr=Arrays.equals(arr1, arr3);
System.out.println(arr);//为false
//填充
int[] arr4=new int[3];
Arrays.fill(arr4,10);
for(int i:arr4) {
System.out.print(i+" ");
}
//集合的set,get操作
arr2.set(0,10);
System.out.println("\n"+arr2);//下标0得到值改为10
int ss=(int) arr2.get(0);//object只能强转为int类型,因其中的值为之前int数组中的数据
ArrayList arr7=new ArrayList();
arr7.add("wo");
arr7.add(3);
//int ss1=(int) arr7.get(0);//会报错,添加的是String类型,故只能强转为string
int ss2=(int) arr7.get(1);//同理,即使string优先级高于int,也只能强转为int,不能强转为string
//综上,核心就是array默认是object,任何类型的数据都能赋值,但获取时只为object类型,若想要强转,必须按当前的值的类型进行强转
//数组判断是否包括某值
String[] arr6=new String[] {"wo","meng"};
String a="wo";
boolean flag=Arrays.asList(arr6).contains(a);
System.out.println(flag);
//数组排序
Arrays.sort(arr6);//只能对数组进行排序
Collections.sort(arr2);//对集合进行排序
//去重复
int[] arr8 = {1,2,3,5,6,7,8,9,0,3,2,4,5,6,7,4,32,2,1,1,4,6,3};
//利用set的特性
Set<Integer> set1=new HashSet<Integer>();
for (int i = 0; i < arr8.length; i++) {
set1.add(arr8[i]);
}
System.out.println(set1);
int[] arr9 = new int[set1.size()];
int j=0;
for (Integer i:set1) {
arr9[j++]=i;
}
System.out.println(Arrays.toString(arr9));
}
}