如何在java中将ArrayList转换为String[],Arraylist包含VO对象

2022-09-03 08:40:38

请帮我把 ArrayList 转换为 String[]。ArrayList 包含 Object(VO) 类型的值。

例如

问题是我需要将国家列表转换为字符串数组,对其进行排序,然后将其放入列表中。但是,我得到了一个ClassCastException。


答案 1
String [] countriesArray = countryList.toArray(new String[countryList.size()]);

我假设您的国家列表名称是 .countryList

因此,要将任何类的 ArrayList 转换为数组,请使用以下代码。将 T 转换为要创建其数组的类。

List<T> list = new ArrayList<T>();    
T [] countries = list.toArray(new T[list.size()]);

答案 2

请帮我把 ArrayList 转换为 String[],ArrayList 包含 Values Object(VO) 作为值。

正如你所提到的,列表包含 Values Object,即你自己的类,你需要重写 string() 才能使它正常工作。

此代码有效。假定是值对象类。VO

    List<VO> listOfValueObject = new ArrayList<VO>();
    listOfValueObject.add(new VO());
    String[] result = new String[listOfValueObject.size()];
    for (int i = 0; i < listOfValueObject.size(); i++) {
        result[i] = listOfValueObject.get(i).toString();
    }
    Arrays.sort(result);
    List<String> sortedList = Arrays.asList(result);

的片段

    List<VO> listOfValueObject = new ArrayList<VO>();
    listOfValueObject.add(new VO());
    String[] countriesArray = listOfValueObject.toArray(new String[listOfValueObject.size()]);

将给你应有的不是本机方法所需的类型,随后从一个调用。ArrayStoreExceptionVOStringarraycopytoArray