如何将对象类转换为arrayList?java的

How to convert object class to arrayList ? java

本问题已经有最佳答案,请猛点这里访问。

我有这个代码:

1
2
3
4
5
6
7
8
ArrayList<Integer> users = new ArrayList<Integer>();

Map <String,Object> hashMap = new HashMap <String,Object> ();

hashMap.put("users",user);

// now I want to get users as array list
 hashMap.get("users")[i];//error

如何将用户作为数组? 谢谢


1
2
3
4
5
6
7
8
9
10
List<Integer> users = new ArrayList<Integer>();

Map<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("users",user);
....
....
....
List<Integer> users = (List<Integer>)hashMap.get("users"); //assuming this is another method and 'users' is not defined here yet
Integer[] usersArray = users.toArray(new Integer[users.size()]);
System.out.println("" + usersArray[i]);

请注意,这是一个暴行,你不应该将List作为一个对象存储,你几乎可以避开泛型的用途。


如果要将其作为ArrayList访问,此代码将起作用:

1
2
3
4
List<Integer> users = new ArrayList<Integer>();
Map<String, List<Integer>> hashMap = new HashMap<String, List<Integer>> ();
hashMap.put("users",users);
hashMap.get("users");

您将代码存储为对象后,您的代码将无法正常工作。所以你需要演员。即便如此,你使用[]表示数组,而不是ArrayLists

如果要将其用作数组,可以将最后一行更改为:

1
hashMap.get("users").toArray()

然后你可以使用[1],或者只对初始代码执行.get(1)。

或者,如果您想将hashMap用作属性包作为有效提及的人,则需要进行强制转换:

1
((ArrayList<Integer>) hashMap.get("users"))

然后,您可以将用户用作ArrayList,因为默认情况下从HashMap获取Object


您可以尝试以下内容

1
2
3
List<Users> usersList = new ArrayList<>();
Map<String,List<Users>> hashMap = new HashMap <> ();
hashMap.put("user",usersList);

现在

1
hashMap.get("user")

将返回ListUsers,现在可以使用了

1
hashMap.get("user").get(0); // to get 0th index user

因为它是ArrayList而不是数组,你可以像这样得到它 -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void main(String args[]) throws Exception
{
  ArrayList<Integer> users = new ArrayList<Integer>();
  users.add(5);
  users.add(10);

  Map <String,Object> hashMap = new HashMap <String,Object> ();

  hashMap.put("users",users);

  ArrayList<Integer> no =  ((ArrayList<Integer>) hashMap.get("users"));

   for (Integer integer : no) {
    System.out.println(integer);
   }
}

输出 -

1
2
5
10

现在将ArrayList转换为Array -

1
Integer[] arr = no.toArray(new Integer[no.size()]);