JAVA常识

1.集合转数组

public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        System.out.println(list);
        String[] arr = list.toArray(new String[list.size()]);
        for (String str : arr) {
            System.out.println(str);
        }
}

输出:

2. 数组转集合

public static void main(String[] args) {
        String[] strArr = {"one", "two", "three","four"};
        List<String> list = Arrays.asList(strArr);
        System.out.println(list);
        //对list的操作就是对数组的操作
        //由于数组是定长的,所以集合不可以增删元素(可以修改)
        //list.add("five");报错

        List<String> list2 = new ArrayList<>();
        list2.addAll(list);
        //等价于List<String> list2 = new ArrayList<>(list);
    }

3.数组复制

public static void main(String[] args) {
       int[] a = {10, 20, 30, 40, 50};
       int[] a1 = new int[6];//0,0,0,0,0,0
        /**
         * a:源数组
         * 1:源数组的起始下标
         * a1:目标数组
         * 0:目标数组的起始下标
         * 4:要复制的元素个数
         */
       System.arraycopy(a, 1, a1, 0, 4);//a1:20,30,40,50,0,0
        /**
         * a:源数组
         * a1:目标数组
         * 6:目标数组的长度(多则补默认值,少则截取)
          */
       int[] a2 = Arrays.copyOf(a,6);//a2:10,20,30,40,50,0
        
       //数组的扩容,即创建一个新的数组 
       a = Arrays.copyOf(a, 6); 
    }

4.反射

4.1实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
    String num;

    String age;

    String life;
}

4.2实战

public static void main(String[] args) throws Exception {
        Student student = new Student();
        Class clazz = student.getClass();
        //另一种写法
        //Class clazz = Class.forName("com.kuang.entity.Student");
        System.out.println(clazz.getName());//获取类名com.kuang.entity.Student
        Field[] fields = clazz.getDeclaredFields();//获取当前自己定义的所有变量
        //java.lang.String com.kuang.entity.Student.num
        //java.lang.String com.kuang.entity.Student.age
        //java.lang.String com.kuang.entity.Student.life
        Method[] methods = clazz.getDeclaredMethods();
        //public boolean com.kuang.entity.Student.equals(java.lang.Object)
        //public java.lang.String com.kuang.entity.Student.toString()
        //public int com.kuang.entity.Student.hashCode()
        //public void com.kuang.entity.Student.setLife(java.lang.String)
        //public java.lang.String com.kuang.entity.Student.getNum()
        //public java.lang.String com.kuang.entity.Student.getLife()
        //public void com.kuang.entity.Student.setNum(java.lang.String)
        //public void com.kuang.entity.Student.setAge(java.lang.String)
        //public java.lang.String com.kuang.entity.Student.getAge()
        //protected boolean com.kuang.entity.Student.canEqual(java.lang.Object)
        /**
         * new一个类的对象,调的是无参构造方法实例化,并将实例化对象返回
         */
        //Object obj = clazz.newInstance();
        /**
         * 获取类的某一个方法
         * 参数一:方法名
         * 参数二:参数类型,无参可不写或写null
         */
        Method method = clazz.getDeclaredMethod("setLife", String.class);
        /**
         * 相当于setLife("20")
         */
        method.invoke(student, "20");//无参可写null
        Method method1 = clazz.getDeclaredMethod("getLife", null);
        Object result = method1.invoke(student,null);
        System.out.println(result);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值