问题出在哪儿?求详解

 public class Random {
    private String Member_number;//会员编号
    public String getMember_number() {
        return Member_number;
    }
    public void setMember_number(String memberNumber) {
        Member_number = memberNumber;
    }
    public static void main(String[] args){
        List<Object> list = new ArrayList<Object>();
        int n = (int)(Math.random()*(10-1+1)+1);
        System.out.println("随机生成会员个数:"+n);
        Random[] member = new Random[n];
        for(int i=0;i<n;i++){
            member[i] = new Random();
            list.add(member[i]);
        }
        for(int i=0;i<n;i++){
            Scanner in = new Scanner(System.in);
            System.out.println("==========输入会员"+(i+1)+"的信息==========");
            System.out.println("输入会员编号:");
            String memberNumber = in.next();
            member[i].setMember_number(memberNumber);
        }
        for(int i=0;i<n;i++){
            System.out.println("会员"+(i+1)+"信息如下:");
            System.out.println("会员编号:"+member[i].getMember_number());
        }
        //删除指定位置的对象
        list.remove(n-4);
        System.out.println("2.删除后会员信息如下:");
        for(int i=0;i<n-1;i++){
            System.out.println("删除后会员"+(i+1)+"信息如下:");
            System.out.println("会员编号:"+member[i].getMember_number());
        }
    }
}

想要删除指定位置的member对象,应如何更改?

如果删除,for循环就不要正着顺序,要从后往前遍历

1、把List list = new ArrayList(); 改为List list = new ArrayList(); 因为List中的数据类型就是Random。

2、修改代码如下:

System.out.println("会员编号:" + list.get(i).getMember_number());

通过list.get(i)可以获取到list中第i+1个元素,其就是Random类型的。

3、如果不修改1,则需要类型转换,将Object转换为Random类型。

System.out.println("会员编号:" + ((Random)list.get(i)).getMember_number());