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. Hadoop - Unable to load native-hadoop library for your platform

    简介 运行hadoop或者spark(调用hdfs等)时,总出现这样的错误“Unable to load native-hadoop library for your platform”,其实是无法加 ...

  2. android 使用shape来优化界面效果

    看下效果图: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...

  3. jfinal 解决ajax 跨域访问--jsonp

    JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的 js无法操作b.com或是c.a.com域名下的对象. ...

  4. Life Cycle of Thread – Understanding Thread States in Java

    Life Cycle of Thread – Understanding Thread States in Java 深入理解java线程生命周期. Understanding Life Cycle ...

  5. windows 下编辑shell,到linux报错,也是windows换行等造成

    sed -i 's/\r$//' shell.sh 然后linux 下就不会报语法错误了.

  6. Adressing

  7. 学习笔记:MySQL操作初步

    对数据库的操作:SQL语言 一:SQL:Structured Query Language,结构化查询语言! 二:DDL:Data Definition Language,数据定义语言 三:DML:D ...

  8. AsyncTask 异步处理

    1 package com.ch.day8_asynctaskdemo; 2 3 import java.util.ArrayList; 4 5 import com.ch.myutils.NetWo ...

  9. iOS 图片轮播图(自动滚动)

    iOS 图片轮播图(自动滚动) #import "DDViewController.h" #define DDImageCount 5 @interface DDViewContr ...

  10. 不可错过的炒鸡棒的js迷你库

    小而美被实践是最好用的,这里收藏了一些很好用的js库,他们都功能单一且非常小. COOKIE.JS  https://github.com/js-coder/cookie.js 如果你操作过cooki ...