`

list中对象、值保存的解释

 
阅读更多
package com.lee.list;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import com.lee.model.Person;


public class ListAddChangeList {

	/*[com.lee.model.Person@2510bb7, com.lee.model.Person@16d81c91]
	[com.lee.model.Person@2510bb7, com.lee.model.Person@16d81c91]
	[com.lee.model.Person@2510bb7, com.lee.model.Person@16d81c91]
	[null, null]*/
	//实验证明,list保存的是p1 p2 指向的内存地址,这块内存地址的值可以通过p1 p2去修改里边的值
	//但是改变p1 p2的指向并不能改变这块内存地址的值,所以当p1 = null时
	//list保存的p1所指向的内存地址还是不会改变,还是会有值
	@Test
	public void t1(){
		List<Person> list = new ArrayList<Person>();
		Person p1 = new Person("n1",11); 
		Person p2 = new Person("n2", 22); 
		list.add(p1);
		list.add(p2);
		
//		p1 = null;
//		p2 = null;
		
		//System.out.println(list.toString());
		
		print(list);
		p1.setAge(15);
		
		List<Person> list2 = new ArrayList<Person>();
		list2.add(list.get(0));
		list2.add(list.get(1));
		
		list.set(0, null);
		list.set(1, null);
		
		//System.out.println(list2.toString());
		p1.setAge(166);
		p1 = null;
		p2 = null;
		System.out.println("****p1.setAge(16)****");
		print(list2);
//		p1 = null;
//		p2 = null;
		p1.setAge(17);
		System.out.println("***********");
		print(list2);
		//System.out.println(list2.toString());
		
//		list2.set(0, null);
//		list2.set(1, null);
		
		//System.out.println(list2.toString());
		p1.setAge(17);
		print(list2);
	}

	private void print(List<Person> list) {
		for(Person person : list){
			System.out.print(person.getName() + " " + person.getAge() + " ");
		}
		if(list.size() == 0){
			System.out.println("empty");
		}
		System.out.println();
		
	}
	
	
	
}

分享到:
评论

相关推荐

    C#将List对象转换为BMP图片保存

    在C#编程中,将一个`List&lt;T&gt;`对象转换为BMP图片并保存到本地是一项常见的数据可视化任务,尤其在处理大量数据时。这个过程涉及到多个步骤,包括数据的渲染、图像创建以及文件保存。以下将详细介绍这个过程,以及相关...

    mfc listcontrol导出保存为excel类

    要将ListControl中的数据导出并保存为Excel文件,我们需要实现一个转换过程。这个过程涉及从ListControl读取数据,然后用适当的方式写入Excel文件。Excel文件通常使用Microsoft Office Interop库来处理,但这需要在...

    注册表实现List添加,删除,保存,读取.zip

    - 当读取List时,从注册表值中获取字符串或字节数组,然后反序列化回原来的List对象。这同样需要使用到序列化类的反序列化方法。 6. **删除List数据**: - 删除List数据通常涉及到删除包含该List的整个注册表项。...

    MFC ListControl与Excel 数据导入导出

    将这些值填充到CListCtrl对象中,调用InsertItem、SetItemText等函数来创建新的列表项并设置其文本。 导出ListControl数据到Excel时,你需要创建一个新的Excel工作簿,添加工作表,然后遍历ListControl中的所有项和...

    使用SpringBoot-JPA进行自定义保存及批量保存功能

    在JPA中,保存一个对象需要使用仓储接口,例如StudentRepo: ```java @Repository public interface StudentRepo extends JpaRepository, String&gt; {} ``` 然后,我们可以使用StudentRepo的save()方法来保存一个...

    VC6.0将ListCtrl中的数据导入到Excel

    3. **设置单元格值**:遍历ListCtrl中的每一项和每一列,获取数据并写入Excel的相应单元格。例如,`worksheet.Cells[rowIndex, columnIndex].Value = listCtrl.GetItemText(itemIndex, subItemIndex)`。 4. **格式...

    Freemarker中遍历list集合实例

    当在遍历 sequence 时,会将遍历变量的值保存到 item 中。 例如:&lt;#list userList as user&gt; …&lt;/#list&gt;,userList 中封装了很多个 User 对象,我们在遍历 userList 时,会将遍历的 User 对象的值,保存到上述的 ...

    Listbox中保存对象

    标题"Listbox中保存对象"指的是如何在`ListBox`中存储并处理自定义对象,而不是仅仅显示字符串数据。 `ListBox`控件默认只显示字符串,但通过一些技巧,我们可以将其扩展以存储自定义类型的数据。这种做法通常涉及...

    保存一个list

    在Java中,可以通过FileWriter、BufferedWriter等类将list转换为字符串(例如用逗号分隔值,CSV格式),然后写入到文本文件中。读取时,可以使用FileReader和BufferedReader反向操作,将文本数据解析回列表。这种...

    巧用struts标签之checkboxlist选中默认值换行处理

    `allCheckboxBeans`通常是从数据库中查询得到的一组`CheckboxBean`对象列表,而`checkboxBeans`则是用户之前保存的已选中的`CheckboxBean`对象列表。 在JSP页面中,我们使用`&lt;s:checkboxlist&gt;`标签来渲染复选框列表...

    将listcontrl控件里的数据导出到excel表格里

    - **数据类型处理**:listctrl中的数据可能包含不同类型的值,如字符串、数字、日期等。在导出时,需要正确转换为Excel能识别的格式。 - **图片和自定义对象**:listctrl有时会包含图像或其他复杂对象,导出时可能...

    sharedpreferences 保存list

    在Android开发中,SharedPreferences是常用于轻量级数据存储的一种机制,它主要用于保存应用程序的简单配置数据,如布尔值、整数、浮点数、字符串等。然而,SharedPreferences本身并不直接支持保存List类型的数据。...

    ListCtrl中嵌套下拉列表

    6. **数据保存**:当用户完成编辑并关闭下拉列表时,需要将选定的值保存到适当的数据结构或数据库中,以供后续使用。这通常涉及到监听WM_COMMAND消息,识别用户的编辑结束动作,并调用适当的数据存储函数。 7. **...

    ASP.NET 中Checkboxlist添加到数据库代码案例

    这段代码实现了从 `CheckBoxList` 控件获取选中项,并将这些项的值保存到数据库的功能。需要注意的是,在实际生产环境中,为了提高代码的安全性和健壮性,建议使用参数化查询来代替字符串拼接的方式,以防止 SQL ...

    ASP.NET—001:GridView绑定List、页面返回值

    "绑定List"通常指的是将一个List对象(例如,List)中的数据绑定到GridView,以便在网页上展示。这可以通过在代码-behind文件中设置GridView的DataSource属性,并调用DataBind()方法来实现。例如: ```csharp List...

    js数组中存对象,根据对象的属性进行去重

    在进行web项目开发的时候,有时候需要把一些前端的数组进行去重处理,得到一个去重后的数据,然后在进行相关的操作

    swiftUI 1.0 list 滚动到指定position

    总结,实现SwiftUI 1.0中的列表(List)滚动到指定位置,主要步骤包括:创建一个环境对象来存储滚动目标,监听环境对象的变化并在`onAppear`回调中调用`List.scrollTo`方法。这种方法既简单又灵活,可以适应各种滚动...

    mfc下导出listctrl数据到excel表格

    本教程将详细解释如何在MFC环境下将ListCtrl控件中的数据导出到Excel表格。 首先,我们需要理解MFC ListCtrl的基本操作。ListCtrl是MFC对Windows API中的ListView控件的封装,它允许我们以列表形式展示数据,包括多...

    用sortedlist,vsto合并两份excel

    2. 创建SortedList对象,用于存储Excel数据,键可以是唯一的标识符(如行号或唯一字段),值可以是包含该行所有数据的对象数组。 3. 使用VSTO打开第一个Excel文件,遍历每个工作表,读取每一行的数据,将其添加到...

Global site tag (gtag.js) - Google Analytics