如何在泛型为Integer的ArrayList中存放String对象

本文介绍如何利用反射机制调用ArrayList的add()方法来添加不同类型的元素,并演示了正序与逆序遍历的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法:通过反射得到ArrayList的add()方法,用invoke调用这个方法并通过这个方法将字符串添加到集合中去。
上代码:

ArrayList<Integer> list = new ArrayList<>();

        for (int i = 1; i <= 6; i++) {
            list.add(i);
        }

        String str = "字符串";
        Method add = list.getClass().getMethod("add", Object.class);
        add.invoke(list, str);
        ListIterator<Integer> iterator = list.listIterator();
        while (iterator.hasNext()){
            System.out.print(iterator.next()+" ");
            //1 2 3 4 5 6 字符串
        }

题外:正常情况下用ListIterator去遍历它的光标在第一位,所以如果我们要用iterator去逆序遍历需要先正向遍历,将光标移到最后一位,再从后向前遍历。
不过其实不用这么麻烦,我们可以直接在listIterator()中去指定光标位置就可以了。
上代码:

ListIterator<Integer> iterator = list.listIterator(list.size());
//        while (iterator.hasNext()){
//            System.out.print(iterator.next()+" ");
//        }

        while (iterator.hasPrevious()){
            System.out.print(iterator.previous()+" ");
            //字符串 6 5 4 3 2 1 
        }

当然如果想要逆序也可以直接用Collections下的reverse()方法将list中元素反转就可以了,这里就不多说了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值