List对象合并

原创 2013年12月04日 10:15:06

 使用List,合并相同的对象,方便遍历

 

Set的功能方法

  Set具有与Collection完全一样的接口,因此没有任何额外的功能,不像前面有两个不同的List。实际上Set就是Collection,只是行为不同。(这是继承与多态思想的典型应用:表现不同的行为。)Set不保存重复的元素(至于如何判断元素相同则较为负责)

  Set : 存入Set的每个元素都必须是唯一的,因为Set不保存重复元素。加入Set的元素必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。

  HashSet : 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。

  TreeSet : 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。

  LinkedHashSet : 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示

package hb.util;

import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.junit.Test;

public class ListUnit{

	/**
	*两个list<Object>,合并,使用Set没有办法删除相同的
	*/
	public static void main(String[]args){
	
		List list = new LinkedList();
		for(int i=0;i<5;i++){
			Person p = new Person();
			p.setName("name"+i);
			p.setId("id"+i);
			list.add(p);
		}
		
		List list2 = new LinkedList();
		for(int i=0;i<5;i++){
			Person p = new Person();
			p.setName("name2"+i);
			p.setId("id2"+i);
			list2.add(p);
		}
		
		Person p = new Person();
		p.setName("name"+2);
		p.setId("id"+2);
		list2.add(p);
		
		Set set = new HashSet();
		set.addAll(list);
		set.addAll(list2);
		
		System.out.println(set.size());
		
	}
	
	/**
	*两个list<String>字符串,合并,并且保留的值唯一,没有相同的
	*/
	@Test
	public void stringListUnionDiff(){
		List<String> list = new LinkedList<String>();
		for(int i=0; i < 5; i++){
			list.add("name"+i);
		}
		
		List<String> list2 = new LinkedList<String>();
		for(int i=0; i < 5; i++){
			list2.add("name"+i);
		}
		
		Set set = new HashSet();
		set.addAll(list);
		set.addAll(list2);
		
		System.out.println(set.size());
	}
	
	/**
	*两个list<String>字符串,合并,并且保留所有的值,可能存在相同的
	*/
	@Test
	public void stringListUnionAll(){
		List<String> list1 = new LinkedList<String>();
		for(int i=0; i < 5; i++){
			list1.add("name"+i);
		}
		
		List<String> list2 = new LinkedList<String>();
		for(int i=0; i < 5; i++){
			list2.add("name"+i);
		}
		
		List list = new LinkedList();
		list.addAll(list1);
		list.addAll(list2);
		
		System.out.println(list.size());
	}
	
	

}

 

List合并具有相同属性的对象

业务背景:一个list集合了若干个student对象,并且student对象具有name和money属性,此时我们需要合并具有相同name属性的student的money. Student类的代码: ...
  • LINPE
  • LINPE
  • 2016年06月16日 20:00
  • 1090

去掉list中重复元素并合并相同对象

1.如果list中是基本数据类型,直接用set。 package com.hz; import java.util.ArrayList; import java.util.HashSet; imp...

List对象排序通用方法

  • 2011年10月09日 20:23
  • 8KB
  • 下载

js中的Array对象转成字符串;java中的List转成String数组, List集合的合并

#1、js中Array对象转成字符串

Hibernate查询返回list对象分析学习

原文章地址 在一次开发中我需要从Hibernate查询返回List对象中(注:这个list对象并非一个完整的model类,而是多表查询拼凑的一些字段),取出部分数据在做一次筛选操作。但list只是...

4个json包,,测试对象,MAP,LIST都行

  • 2012年09月07日 15:41
  • 561KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:List对象合并
举报原因:
原因补充:

(最多只允许输入30个字)