关闭

List对象合并

269人阅读 评论(0) 收藏 举报
分类:

 使用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());
	}
	
	

}

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:322853次
    • 积分:8883
    • 等级:
    • 排名:第2228名
    • 原创:1096篇
    • 转载:14篇
    • 译文:0篇
    • 评论:5条
    最新评论