JAVA集合存放的是對象還是對象引用?


問題:添加一個對象到集合中時,集合里面存放的是對象的引用還是對象本身?

答:對象的引用。以下代碼可以證明:

 1 import JAVA.util.ArrayList;
 2 import JAVA.util.List;
 3 
 4 public class Test5 {
 5     public static void main(String args[]){
 6         List<User> userList1 = new ArrayList<User>();        
 7         List<User> userList2 = new ArrayList<User>();    
 8         User user1 = new User();
 9         userList1.add(user1);        
10         userList2.add(user1);
11         
12         System.out.println("SET VALUE FOR USERLIST2:");        
13         for(User user: userList2){
14             user.setName("name");
15             user.setPassword("password");        
16         }
17         System.out.println("PRINT VALUE FOR USERLIST1:");
18         for(User user: userList1){
19             System.out.println(user.getName());            
20             System.out.println(user.getPassword());            
21         }        
22     }
23     
24     public static class User{
25         private String name;
26         private String password;
27         
28         public String getName() {
29             return name;
30         }
31         public void setName(String name) {
32             this.name = name;
33         }
34         public String getPassword() {
35             return password;
36         }
37         public void setPassword(String password) {
38             this.password = password;
39         }
40     }
41 }

輸出結果:

SET VALUE FOR USERLIST2:
PRINT VALUE FOR USERLIST1
name
password

 

設置userList2中元素的value,但是userList1中元素的value也發生了改變,證明集合中存放的是對象的引用。

摘自:http://bettereveryday.iteye.com/blog/682322


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM