数组和List集合的区别(容易出错的点,自用,不全)

#自用之数组

是一些自己在做题过程中遇到的小问题,通过百度或其他大神的博客进行了解决

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));
    }
}
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值