package yq;

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

import com.mysql.fabric.xmlrpc.base.Array;
/**
* 现有 List<UserInfo>,按照UserInfo中的姓名放到不同的List中。
* 方案解决如下:
* @author master
*
*/
public class TestList {
public static void main(String[] args) {
List<UserInfo> arrayList = new ArrayList<UserInfo>();
arrayList.add(new UserInfo(1l, "wangliang", "a"));
arrayList.add(new UserInfo(2l, "wangliang", "16"));
arrayList.add(new UserInfo(3l, "wangliang", "12"));
arrayList.add(new UserInfo(4l, "qy", "126"));
arrayList.add(new UserInfo(5l, "yq", "123456"));
arrayList.add(new UserInfo(5l, "yq", "qqq"));
arrayList.add(new UserInfo(6l, "qy", "111"));
/*
* 方式一:
* LinkedHashMap<String, ArrayList<UserInfo>> map=new LinkedHashMap<String,ArrayList<UserInfo>>();
for (UserInfo userInfo : arrayList) {
//if contains key
if(map.containsKey(userInfo.getName())){
map.get(userInfo.getName()).add(userInfo);
}else{
ArrayList<UserInfo> userInfoValue = new ArrayList<UserInfo>();
userInfoValue.add(userInfo);
map.put(userInfo.getName(), userInfoValue);
}
}
System.out.println(map);
*/
/*方式二:*/
LinkedHashMap<String, ArrayList<UserInfo>> map=new LinkedHashMap<String,ArrayList<UserInfo>>();
for (UserInfo uInfo :arrayList) {
if(!map.containsKey(uInfo.getName())){
map.put(uInfo.getName(),new ArrayList());
}
map.get(uInfo.getName()).add(uInfo);
}
System.out.println(map);
}
}

将 List<UserInfo>中的对象按照UserInfo.name进行分组的更多相关文章

  1. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  2. js中判断对象具体类型

    大家可能知道js中判断对象类型可以用typeof来判断.看下面的情况 <script> alert(typeof 1);//number alert(typeof "2" ...

  3. 浅解析js中的对象

    浅解析js中的对象 原文网址:http://www.cnblogs.com/foodoir/p/5971686.html,转载请注明出处. 前面的话: 说到对象,我首先想到的是每到过年过节见长辈的时候 ...

  4. js中XMLHttpRequest对象实现GET、POST异步传输

    js中XMLHttpRequest对象实现GET.POST异步传输 /* * 统一XHR接口 */ function createXHR() { // IE7+,Firefox, Opera, Chr ...

  5. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  6. Hibernate中Java对象的三种状态

                                                                                     Hibernate中Java对象的三种 ...

  7. 批量导出oracle中的对象

    背景 Oracle数据库中有table,view,procedure,function,package,type等对象,需要将这些对象导出到不同的文件中.常用的方法有3种:1. 通过开发工具直接导出. ...

  8. 缓存依赖中cachedependency对象

    缓存依赖主要提供以下功能:1.SQL 缓存依赖项可用于应用程序缓存和页输出缓存.2.可在 SQL Server 7.0 及更高版本中使用 SQL 缓存依赖项.3.可以在网络园(一台服务器上存在多个处理 ...

  9. JVM中,对象在内存中的布局

    在hotSpot虚拟机中,对象在内存中的布局可以分成对象头.实例数据.对齐填充三部分. 对象头:主要包括: 1.对象自身的运行行元数据,比如哈希码.GC分代年龄.锁状态标志等,这部分长度在32位虚拟机 ...

随机推荐

  1. CentOS - FTP server

    1. install vsftpd.(PS:procedure 1-4 under the circumstance that the firewall is closed and the iptab ...

  2. dynamoDb aws config aws_access_key_id aws_secret_access_key golang

    how to set  aws_access_key_id awscfg := aws.NewConfig().WithRegion(config.Region).WithCredentials(cr ...

  3. java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12

    最近使用Android Studio开发一个新项目,刚做完几个界面,跑在android 5.0上面很正常,因为都是挺简单的布局,本以为应该不存在兼容性问题(Flag啊). 偶然用了一个4.x的实机测试 ...

  4. Mini ORM——PetaPoco笔记

    Mini ORM--PetaPoco笔记 记录一下petapoco官网博客的一些要点.这些博客记录了PetaPoco是如何一步步改进的. 目录: Announcing PetaPoco PetaPoc ...

  5. MySQL 显示命令

    虽然现在各种图形化管理工具方便了MySQL的管理,但是偶尔还是需要手动输入指令来使用比较方便,以下是摘抄的一些命令,供自己备忘使用. 1.显示数据库列表. show databases; 2.显示库中 ...

  6. Python程序的首行

    >问题 >>在一些python程序中的首行往往能够看见下面这两行语句中的一句 >>>#!/usr/bin/Python >>>#!/usr/bin ...

  7. Linux -- objdump二进制文件比较

    objdump工具用来显示二进制文件的信息,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息. 常用参数说明 -f 显示文件头信息 -D 反汇编所有section (-d反汇编特定se ...

  8. 安装eclipse的hadoop开发环境--2

    在eclipse上做好一切,在网上很容易搜到 尝试链接hadoop集群失败,尝试单机的操作,发现# ssh localhost失败 解决ssh问题:成功解决 但是eclipse的DFS locatio ...

  9. Jquery 定时器 倒计时

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  10. PHP设计模式之:单例模式

        前 些日子开始着真正的去了解下设计模式,开始么,简单地从单例模式开始,当然网上看了一些资料,单例模式比较好理解,看看介绍,然后看看代码基本也就能够理 解了,设计模式这些的花点心思基本的是能够理 ...