1. <h1>
  2. <span class="link_title"><a href="/yangxiaojun9238/article/details/51500934">
  3. JAVA 集合 List 分组的两种方法
  4. </a></span>
  5. </h1>
  1. <div class="article_manage clearfix">
  2. <div class="article_r">
  3. <span class="link_postdate">2016-05-25 19:25</span>
  4. <span class="link_view" title="阅读次数">2243人阅读</span>
  5. <span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span>
  6. <span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('JAVA+%e9%9b%86%e5%90%88+List+%e5%88%86%e7%bb%84%e7%9a%84%e4%b8%a4%e7%a7%8d%e6%96%b9%e6%b3%95','51500934');return false;" title="收藏" target="_blank">收藏</a></span>
  7. <span class="link_report"> <a href="#report" onclick="javascript:report(51500934,2);return false;" title="举报">举报</a></span>
  8. </div>
  9. </div>
  10. <div class="embody" style="display:none" id="embody">
  11. <span class="embody_t">本文章已收录于:</span>
  12. <div class="embody_c" id="lib" value="{&quot;err&quot;:0,&quot;msg&quot;:&quot;ok&quot;,&quot;data&quot;:[]}"></div>
  13. </div>
  14. <style type="text/css">
  15. .embody{
  16. padding:10px 10px 10px;
  17. margin:0 -20px;
  18. border-bottom:solid 1px #ededed;
  19. }
  20. .embody_b{
  21. margin:0 ;
  22. padding:10px 0;
  23. }
  24. .embody .embody_t,.embody .embody_c{
  25. display: inline-block;
  26. margin-right:10px;
  27. }
  28. .embody_t{
  29. font-size: 12px;
  30. color:#999;
  31. }
  32. .embody_c{
  33. font-size: 12px;
  34. }
  35. .embody_c img,.embody_c em{
  36. display: inline-block;
  37. vertical-align: middle;
  38. }
  39. .embody_c img{
  40. width:30px;
  41. height:30px;
  42. }
  43. .embody_c em{
  44. margin: 0 20px 0 10px;
  45. color:#333;
  46. font-style: normal;
  47. }
  48. </style>
  49. <script type="text/javascript">
  50. $(function () {
  51. try
  52. {
  53. var lib = eval("("+$("#lib").attr("value")+")");
  54. var html = "";
  55. if (lib.err == 0) {
  56. $.each(lib.data, function (i) {
  57. var obj = lib.data[i];
  58. //html += '<img src="' + obj.logo + '"/>' + obj.name + "&nbsp;&nbsp;";
  59. html += ' <a href="' + obj.url + '" target="_blank">';
  60. html += ' <img src="' + obj.logo + '">';
  61. html += ' <em><b>' + obj.name + '</b></em>';
  62. html += ' </a>';
  63. });
  64. if (html != "") {
  65. setTimeout(function () {
  66. $("#lib").html(html);
  67. $("#embody").show();
  68. }, 100);
  69. }
  70. }
  71. } catch (err)
  72. { }
  73. });
  74. </script>
  75. <div class="category clearfix">
  76. <div class="category_l">
  77. <img src="http://static.blog.csdn.net/images/category_icon.jpg">
  78. <span>分类:</span>
  79. </div>
  80. <div class="category_r">
  81. <label onclick="GetCategoryArticles('1088196','yangxiaojun9238','top','51500934');">
  82. <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">JAVASE学习笔记<em>(22)</em></span>
  83. <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
  84. <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
  85. <div class="subItem">
  86. <div class="subItem_t"><a href="http://blog.csdn.net/yangxiaojun9238/article/category/1088196" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
  87. <ul class="subItem_l" id="top_1088196">
  88. </ul>
  89. </div>
  90. </label>
  91. </div>
  92. </div>
  93. <script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>

从网上找了两种方法,效率差不多,这里贴出代码供大家参考

实体类Data

  1. public class Data {
  2. private Long id ;
  3. private Long courseId ;
  4. private String content ;
  5. public Long getId() {
  6. return id;
  7. }
  8. public Data setId(Long id) {
  9. this.id = id;
  10. return this ;
  11. }
  12. public Long getCourseId() {
  13. return courseId;
  14. }
  15. public Data setCourseId(Long courseId) {
  16. this.courseId = courseId;
  17. return this ;
  18. }
  19. public String getContent() {
  20. return content;
  21. }
  22. public Data setContent(String content) {
  23. this.content = content;
  24. return this ;
  25. }
  26. }
  1. public class Data {
  2. private Long id ;
  3. private Long courseId ;
  4. private String content ;
  5. public Long getId() {
  6.     return id;
  7. }
  8. public Data setId(Long id) {
  9.     this.id = id;
  10.     return this ;
  11. }
  12. public Long getCourseId() {
  13.     return courseId;
  14. }
  15. public Data setCourseId(Long courseId) {
  16.     this.courseId = courseId;
  17.     return this ;
  18. }
  19. public String getContent() {
  20.     return content;
  21. }
  22. public Data setContent(String content) {
  23.     this.content = content;
  24.     return this ;
  25. }
  26.  
  27. }

排序类

  1. <pre name="code" class="java">import java.lang.reflect.Method;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.HashMap;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Map;
  8. import com.framework.util.ParamUtils;
  9. public class CommonUtils {
  10. /**
  11. * 分組依據接口,用于集合分組時,獲取分組依據
  12. *
  13. * @author ZhangLiKun
  14. * @title GroupBy
  15. * @date 2013-4-23
  16. */
  17. public interface GroupBy<T> {
  18. T groupby(Object obj);
  19. }
  20. /**
  21. *
  22. * @param colls
  23. * @param gb
  24. * @return
  25. */
  26. public static final <T extends Comparable<T>, D> Map<T, List<D>> group(Collection<D> colls, GroupBy<T> gb) {
  27. if (colls == null || colls.isEmpty()) {
  28. System.out.println("分組集合不能為空!");
  29. return null;
  30. }
  31. if (gb == null) {
  32. System.out.println("分組依據接口不能為Null!");
  33. return null;
  34. }
  35. Iterator<D> iter = colls.iterator();
  36. Map<T, List<D>> map = new HashMap<T, List<D>>();
  37. while (iter.hasNext()) {
  38. D d = iter.next();
  39. T t = gb.groupby(d);
  40. if (map.containsKey(t)) {
  41. map.get(t).add(d);
  42. } else {
  43. List<D> list = new ArrayList<D>();
  44. list.add(d);
  45. map.put(t, list);
  46. }
  47. }
  48. return map;
  49. }
  50. /**
  51. * 将List<V>按照V的methodName方法返回值(返回值必须为K类型)分组,合入到Map<K, List<V>>中<br>
  52. * 要保证入参的method必须为V的某一个有返回值的方法,并且该返回值必须为K类型
  53. *
  54. * @param list
  55. *            待分组的列表
  56. * @param map
  57. *            存放分组后的map
  58. * @param clazz
  59. *            泛型V的类型
  60. * @param methodName
  61. *            方法名
  62. */
  63. public static <K, V> void listGroup2Map(List<V> list, Map<K, List<V>> map, Class<V> clazz, String methodName) {
  64. // 入参非法行校验
  65. if (null == list || null == map || null == clazz || !ParamUtils.chkString(methodName)) {
  66. System.out.print("CommonUtils.listGroup2Map 入参错误,list:" + list + " ;map:" + map + " ;clazz:" + clazz + " ;methodName:" + methodName);
  67. return;
  68. }
  69. // 获取方法
  70. Method method = getMethodByName(clazz, methodName);
  71. // 非空判断
  72. if (null == method) {
  73. return;
  74. }
  75. // 正式分组
  76. listGroup2Map(list, map, method);
  77. }
  78. /**
  79. * 根据类和方法名,获取方法对象
  80. *
  81. * @param clazz
  82. * @param methodName
  83. * @return
  84. */
  85. public static Method getMethodByName(Class<?> clazz, String methodName) {
  86. Method method = null;
  87. // 入参不能为空
  88. if (null == clazz || !ParamUtils.chkString(methodName)) {
  89. System.out.print("CommonUtils.getMethodByName 入参错误,clazz:" + clazz + " ;methodName:" + methodName);
  90. return method;
  91. }
  92. try {
  93. method = clazz.getDeclaredMethod(methodName);
  94. } catch (Exception e) {
  95. System.out.print("类获取方法失败!");
  96. }
  97. return method;
  98. }
  99. /**
  100. * 将List<V>按照V的某个方法返回值(返回值必须为K类型)分组,合入到Map<K, List<V>>中<br>
  101. * 要保证入参的method必须为V的某一个有返回值的方法,并且该返回值必须为K类型
  102. *
  103. * @param list
  104. *            待分组的列表
  105. * @param map
  106. *            存放分组后的map
  107. * @param method
  108. *            方法
  109. */
  110. @SuppressWarnings("unchecked")
  111. public static <K, V> void listGroup2Map(List<V> list, Map<K, List<V>> map, Method method) {
  112. // 入参非法行校验
  113. if (null == list || null == map || null == method) {
  114. System.out.print("CommonUtils.listGroup2Map 入参错误,list:" + list + " ;map:" + map + " ;method:" + method);
  115. return;
  116. }
  117. try {
  118. // 开始分组
  119. Object key;
  120. List<V> listTmp;
  121. for (V val : list) {
  122. key = method.invoke(val);
  123. listTmp = map.get(key);
  124. if (null == listTmp) {
  125. listTmp = new ArrayList<V>();
  126. map.put((K) key, listTmp);
  127. }
  128. listTmp.add(val);
  129. }
  130. } catch (Exception e) {
  131. System.out.print("分组失败!");
  132. }
  133. }
  134. }
  1. <pre name="code" class="java">import java.lang.reflect.Method;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.HashMap;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Map;
  8.  
  9. import com.framework.util.ParamUtils;
  10.  
  11. public class CommonUtils {
  12. /**
  13.  * 分組依據接口,用于集合分組時,獲取分組依據
  14.  *
  15.  * @author ZhangLiKun
  16.  * @title GroupBy
  17.  * @date 2013-4-23
  18.  */
  19. public interface GroupBy&lt;T&gt; {
  20. 	T groupby(Object obj);
  21. }
  22. /**
  23.  *
  24.  * @param colls
  25.  * @param gb
  26.  * @return
  27.  */
  28. public static final &lt;T extends Comparable&lt;T&gt;, D&gt; Map&lt;T, List&lt;D&gt;&gt; group(Collection&lt;D&gt; colls, GroupBy&lt;T&gt; gb) {
  29. 	if (colls == null || colls.isEmpty()) {
  30. 		System.out.println("分組集合不能為空!");
  31. 		return null;
  32. 	}
  33. 	if (gb == null) {
  34. 		System.out.println("分組依據接口不能為Null!");
  35. 		return null;
  36. 	}
  37. 	Iterator&lt;D&gt; iter = colls.iterator();
  38. 	Map&lt;T, List&lt;D&gt;&gt; map = new HashMap&lt;T, List&lt;D&gt;&gt;();
  39. 	while (iter.hasNext()) {
  40. 		D d = iter.next();
  41. 		T t = gb.groupby(d);
  42. 		if (map.containsKey(t)) {
  43. 			map.get(t).add(d);
  44. 		} else {
  45. 			List&lt;D&gt; list = new ArrayList&lt;D&gt;();
  46. 			list.add(d);
  47. 			map.put(t, list);
  48. 		}
  49. 	}
  50. 	return map;
  51. }
  52. /**
  53.  * 将List&lt;V&gt;按照V的methodName方法返回值(返回值必须为K类型)分组,合入到Map&lt;K, List&lt;V&gt;&gt;中&lt;br&gt;
  54.  * 要保证入参的method必须为V的某一个有返回值的方法,并且该返回值必须为K类型
  55.  *
  56.  * @param list
  57.  *            待分组的列表
  58.  * @param map
  59.  *            存放分组后的map
  60.  * @param clazz
  61.  *            泛型V的类型
  62.  * @param methodName
  63.  *            方法名
  64.  */
  65. public static &lt;K, V&gt; void listGroup2Map(List&lt;V&gt; list, Map&lt;K, List&lt;V&gt;&gt; map, Class&lt;V&gt; clazz, String methodName) {
  66. 	// 入参非法行校验
  67. 	if (null == list || null == map || null == clazz || !ParamUtils.chkString(methodName)) {
  68. 		System.out.print("CommonUtils.listGroup2Map 入参错误,list:" + list + " ;map:" + map + " ;clazz:" + clazz + " ;methodName:" + methodName);
  69. 		return;
  70. 	}
  71. 	// 获取方法
  72. 	Method method = getMethodByName(clazz, methodName);
  73. 	// 非空判断
  74. 	if (null == method) {
  75. 		return;
  76. 	}
  77. 	// 正式分组
  78. 	listGroup2Map(list, map, method);
  79. }
  80. /**
  81.  * 根据类和方法名,获取方法对象
  82.  *
  83.  * @param clazz
  84.  * @param methodName
  85.  * @return
  86.  */
  87. public static Method getMethodByName(Class&lt;?&gt; clazz, String methodName) {
  88. 	Method method = null;
  89. 	// 入参不能为空
  90. 	if (null == clazz || !ParamUtils.chkString(methodName)) {
  91. 		System.out.print("CommonUtils.getMethodByName 入参错误,clazz:" + clazz + " ;methodName:" + methodName);
  92. 		return method;
  93. 	}
  94. 	try {
  95. 		method = clazz.getDeclaredMethod(methodName);
  96. 	} catch (Exception e) {
  97. 		System.out.print("类获取方法失败!");
  98. 	}
  99. 	return method;
  100. }
  101. /**
  102.  * 将List&lt;V&gt;按照V的某个方法返回值(返回值必须为K类型)分组,合入到Map&lt;K, List&lt;V&gt;&gt;中&lt;br&gt;
  103.  * 要保证入参的method必须为V的某一个有返回值的方法,并且该返回值必须为K类型
  104.  *
  105.  * @param list
  106.  *            待分组的列表
  107.  * @param map
  108.  *            存放分组后的map
  109.  * @param method
  110.  *            方法
  111.  */
  112. @SuppressWarnings("unchecked")
  113. public static &lt;K, V&gt; void listGroup2Map(List&lt;V&gt; list, Map&lt;K, List&lt;V&gt;&gt; map, Method method) {
  114. 	// 入参非法行校验
  115. 	if (null == list || null == map || null == method) {
  116. 		System.out.print("CommonUtils.listGroup2Map 入参错误,list:" + list + " ;map:" + map + " ;method:" + method);
  117. 		return;
  118. 	}
  119. 	try {
  120. 		// 开始分组
  121. 		Object key;
  122. 		List&lt;V&gt; listTmp;
  123. 		for (V val : list) {
  124. 			key = method.invoke(val);
  125. 			listTmp = map.get(key);
  126. 			if (null == listTmp) {
  127. 				listTmp = new ArrayList&lt;V&gt;();
  128. 				map.put((K) key, listTmp);
  129. 			}
  130. 			listTmp.add(val);
  131. 		}
  132. 	} catch (Exception e) {
  133. 		System.out.print("分组失败!");
  134. 	}
  135. }
  136.  
  137. }

  1.  

测试类

  1. import java.util.ArrayList;
  2. import java.util.LinkedHashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import com.framework.common.CommonUtils.GroupBy;
  6. public class Test {
  7. /**
  8. * @param args
  9. */
  10. public static void main(String[] args) {
  11. // 准备一个集合
  12. final int loop = 1000 * 1000;
  13. List<Data> list = new ArrayList<Data>(); // size=8 * loop
  14. for (int i = 0; i < loop; i++) {
  15. list.add(new Data().setId(1L).setCourseId(200010L).setContent("AAA"));
  16. list.add(new Data().setId(2L).setCourseId(200010L).setContent("BBB"));
  17. list.add(new Data().setId(3L).setCourseId(200011L).setContent("CCC"));
  18. list.add(new Data().setId(4L).setCourseId(200011L).setContent("DDD"));
  19. list.add(new Data().setId(5L).setCourseId(200010L).setContent("EEE"));
  20. list.add(new Data().setId(6L).setCourseId(200011L).setContent("FFF"));
  21. list.add(new Data().setId(7L).setCourseId(200010L).setContent("GGG"));
  22. list.add(new Data().setId(8L).setCourseId(200012L).setContent("HHH"));
  23. }
  24. // 进行分组 1
  25. long time = System.currentTimeMillis();
  26. Map<Long, List<Data>> map2 = new LinkedHashMap<Long, List<Data>>();
  27. CommonUtils.listGroup2Map(list, map2, Data.class, "getId");// 输入方法名
  28. long duration = System.currentTimeMillis() - time;
  29. System.out.println("分组一执行:" + duration + "毫秒!");
  30. // 分组二
  31. time = System.currentTimeMillis();
  32. Map<Long, List<Data>> map = CommonUtils.group(list, new GroupBy<Long>() {
  33. @Override
  34. public Long groupby(Object obj) {
  35. Data d = (Data) obj;
  36. return d.getCourseId(); // 分组依据为课程ID
  37. }
  38. });
  39. duration = System.currentTimeMillis() - time;
  40. System.out.println("分组二执行:" + duration + "毫秒!");
  41. }
  42. }
  1. import java.util.ArrayList;
  2. import java.util.LinkedHashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5.  
  6. import com.framework.common.CommonUtils.GroupBy;
  7.  
  8. public class Test {
  9. /**
  10.  * @param args
  11.  */
  12. public static void main(String[] args) {
  13. 	// 准备一个集合
  14. 	final int loop = 1000 * 1000;
  15. 	List&lt;Data&gt; list = new ArrayList&lt;Data&gt;(); // size=8 * loop
  16. 	for (int i = 0; i &lt; loop; i++) {
  17. 		list.add(new Data().setId(1L).setCourseId(200010L).setContent("AAA"));
  18. 		list.add(new Data().setId(2L).setCourseId(200010L).setContent("BBB"));
  19. 		list.add(new Data().setId(3L).setCourseId(200011L).setContent("CCC"));
  20. 		list.add(new Data().setId(4L).setCourseId(200011L).setContent("DDD"));
  21. 		list.add(new Data().setId(5L).setCourseId(200010L).setContent("EEE"));
  22. 		list.add(new Data().setId(6L).setCourseId(200011L).setContent("FFF"));
  23. 		list.add(new Data().setId(7L).setCourseId(200010L).setContent("GGG"));
  24. 		list.add(new Data().setId(8L).setCourseId(200012L).setContent("HHH"));
  25. 	}
  26. 	// 进行分组 1
  27. 	long time = System.currentTimeMillis();
  28. 	Map&lt;Long, List&lt;Data&gt;&gt; map2 = new LinkedHashMap&lt;Long, List&lt;Data&gt;&gt;();
  29. 	CommonUtils.listGroup2Map(list, map2, Data.class, "getId");// 输入方法名
  30. 	long duration = System.currentTimeMillis() - time;
  31. 	System.out.println("分组一执行:" + duration + "毫秒!");
  32. 	// 分组二
  33. 	time = System.currentTimeMillis();
  34. 	Map&lt;Long, List&lt;Data&gt;&gt; map = CommonUtils.group(list, new GroupBy&lt;Long&gt;() {
  35. 		@Override
  36. 		public Long groupby(Object obj) {
  37. 			Data d = (Data) obj;
  38. 			return d.getCourseId(); // 分组依据为课程ID
  39. 		}
  40. 	});
  41. 	duration = System.currentTimeMillis() - time;
  42. 	System.out.println("分组二执行:" + duration + "毫秒!");
  43. }
  44.  
  45. }


  1. <div id="digg" articleid="51500934">
  2. <dl id="btnDigg" class="digg digg_disable" onclick="btndigga();">
  3. <dt></dt>
  4. <dd>1</dd>
  5. </dl>
  6. <dl id="btnBury" class="digg digg_disable" onclick="btnburya();">
  7. <dt></dt>
  8. <dd>0</dd>
  9. </dl>
  10. </div>
  11. <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank">&nbsp;</a> </div>
  12. <div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank">&nbsp;</a></div>
  13. <script type="text/javascript">
  14. function btndigga() {
  15. $(".tracking-ad[data-mod='popu_222'] a").click();
  16. }
  17. function btnburya() {
  18. $(".tracking-ad[data-mod='popu_223'] a").click();
  19. }
  20. </script>
  1. <div style="clear:both; height:10px;"></div>
  2. <div class="similar_article" style="">
  3. <h4>我的同类文章</h4>
  4. <div class="similar_c" style="margin:20px 0px 0px 0px">
  5. <div class="similar_c_t">
  6. <label class="similar_cur">
  7. <span style="cursor:pointer" onclick="GetCategoryArticles('1088196','yangxiaojun9238','foot','51500934');">JAVASE学习笔记<em>(22)</em></span>
  8. </label>
  9. </div>
  10. <div class="similar_wrap tracking-ad" data-mod="popu_141" style="max-height:195px;">
  11. <a href="http://blog.csdn.net" style="display:none" target="_blank">http://blog.csdn.net</a>
  12. <ul class="similar_list fl"><li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/52234786" id="foot_aritcle_52234786undefined6286303496263972" target="_blank" title="Thumbnails操作图片发红的问题解决">Thumbnails操作图片发红的问题解决</a><span>2016-08-17</span><label><i>阅读</i><b>342</b></label></li> <li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/8493088" id="foot_aritcle_8493088undefined4650400583232628" target="_blank" title="jsonlib json,xml,object 互转">jsonlib json,xml,object 互转</a><span>2013-01-11</span><label><i>阅读</i><b>1839</b></label></li> <li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/8250601" id="foot_aritcle_8250601undefined2811853968223248" target="_blank" title="JAVA批量修改文本文件内容,支持子目录">JAVA批量修改文本文件内容,支持子目录</a><span>2012-12-03</span><label><i>阅读</i><b>3593</b></label></li> <li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/7337293" id="foot_aritcle_7337293undefined09073856205329212" target="_blank" title="java和oracle日期互转">java和oracle日期互转</a><span>2012-03-09</span><label><i>阅读</i><b>5933</b></label></li> <li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/7324817" id="foot_aritcle_7324817undefined2789552682571841" target="_blank" title="对BigDecimal常用方法的归类">对BigDecimal常用方法的归类</a><span>2012-03-06</span><label><i>阅读</i><b>233</b></label></li> </ul>
  13. <ul class="similar_list fr"><li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/10171861" id="foot_aritcle_10171861undefined8352417148090185" target="_blank" title="poi excel 多级联动">poi excel 多级联动</a><span>2013-08-22</span><label><i>阅读</i><b>1818</b></label></li> <li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/8488199" id="foot_aritcle_8488199undefined14007191595192148" target="_blank" title="java获得网页源代码">java获得网页源代码</a><span>2013-01-10</span><label><i>阅读</i><b>338</b></label></li> <li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/7349548" id="foot_aritcle_7349548undefined16425431161098203" target="_blank" title="properties配置文件操作实例">properties配置文件操作实例</a><span>2012-03-13</span><label><i>阅读</i><b>543</b></label></li> <li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/7336762" id="foot_aritcle_7336762undefined8513629169728651" target="_blank" title="java与oracle日期格式">java与oracle日期格式</a><span>2012-03-09</span><label><i>阅读</i><b>1471</b></label></li> <li><em></em><a href="http://blog.csdn.net/yangxiaojun9238/article/details/7312426" id="foot_aritcle_7312426undefined10967811199926958" target="_blank" title="日期转换">日期转换</a><span>2012-03-02</span><label><i>阅读</i><b>174</b></label></li> </ul>
  14. <a href="http://blog.csdn.net/yangxiaojun9238/article/category/1088196" class="MoreArticle">更多文章</a></div>
  15. </div>
  16. </div>
  17. <script type="text/javascript">
  18. $(function () {
  19. GetCategoryArticles('1088196', 'yangxiaojun9238','foot','51500934');
  20. });
  21. </script>
  1. <div>
  2. <div class="J_adv" data-view="true" data-mod="ad_popu_205" data-mtp="43" data-order="114" data-con="ad_content_1900" style="width: 728px; height: 90px;"><script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-8990951720398508" data-ad-slot="8267689356/3776917242" data-adsbygoogle-status="done"><ins id="aswift_0_expand" style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:728px;background-color:transparent"><ins id="aswift_0_anchor" style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:728px;background-color:transparent"><iframe width="728" height="90" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;"></iframe></ins></ins></ins><script>(adsbygoogle=window.adsbygoogle || []).push({});</script></div>
  3. </div>

.blog-ass-articl dd {
color: #369;
width: 99%; /*修改行*/
float: left;
overflow: hidden;
font: normal normal 12px/23px "SimSun";
height: 23px;
margin: 0;
padding: 0 0 0 10px;
margin-right: 30px;
background: url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;
}

参考知识库

Java SE知识库

22367关注|468收录

Java EE知识库

14983关注|1233收录

Java 知识库

22977关注|1441收录

软件测试知识库

3613关注|310收录

更多资料请参考:

  1. <dt><span>猜你在找</span></dt>
  2. <div id="adCollege" style="width: 42%;float: left;">
  3. <script src="http://csdnimg.cn/jobreco/job_reco.js" type="text/javascript"></script>
  4. <script type="text/javascript">
  5. csdn.position.showEdu({
  6. sourceType: "blog",
  7. searchType: "detail",
  8. searchKey: "51500934",
  9. username: "",
  10. recordcount: "5",
  11. containerId: "adCollege" //容器DIV的id。
  12. });
  13. </script>
  14. <div class="tracking-ad" data-mod="popu_84"><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/2981" title="java语言从入门到精通2016+项目实训" strategy="v4:content" target="_blank">java语言从入门到精通2016+项目实训</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/3767" title="JavaScript面向对象的编程视频课程第二季 对象" strategy="v4:content" target="_blank">JavaScript面向对象的编程视频课程第二季 对象</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/765" title="深入浅出Java的反射" strategy="v4:content" target="_blank">深入浅出Java的反射</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/3577" title="java核心技术精讲" strategy="v4:content" target="_blank">java核心技术精讲</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px; white-space: nowrap;"><a href="http://edu.csdn.net/course/detail/395" title="零基础学Java系列从入门到精通" strategy="v4:content" target="_blank">零基础学Java系列从入门到精通</a></dd></div></div>
  15. <div id="res" data-mod="popu_36" class="tracking-ad" style="width: 42%; float: left; margin-right: 30px; display: block;"><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/awj321000/article/details/25862015" title="HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档" strategy="SearchAlgorithm" target="_blank">HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/guomei/article/details/46689569" title="Java 运行时监控第 3 部分 监控应用程序生态系统的性能与可用性" strategy="SearchAlgorithm" target="_blank">Java 运行时监控第 3 部分 监控应用程序生态系统的性能与可用性</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/u010185526/article/details/38229803" title="Java 运行时监控第 3 部分 监控应用程序生态系统的性能与可用性" strategy="SearchAlgorithm" target="_blank">Java 运行时监控第 3 部分 监控应用程序生态系统的性能与可用性</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/allenjay11/article/details/53331855" title="JAVA 笔记三 从源码深入浅出集合框架" strategy="SearchAlgorithm" target="_blank">JAVA 笔记三 从源码深入浅出集合框架</a></dd><dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="http://blog.csdn.net/matry521/article/details/52210139" title="Java面试题整理" strategy="SearchAlgorithm" target="_blank">Java面试题整理</a></dd></div>
  1. <div id="ad_cen">

  1. <!-- 广告位开始 -->
  2. <div class="J_adv" data-view="true" data-mod="ad_popu_72" data-mtp="62" data-order="40" data-con="ad_content_2072"><script id="popuLayer_js_q" src="http://ads.csdn.net/js/popuLayer.js" defer="" type="text/javascript"></script><div id="layerd" style="position: fixed; bottom: 0px; right: 0px; line-height: 0px; z-index: 1000; width: 300px; height: 278px; display: none;"><div class="J_close layer_close" style="display:;background-color:#efefef;padding:0px;color:#333;font:12px/24px Helvetica,Tahoma,Arial,sans-serif;text-align:right;">关闭</div><!-- 广告占位容器 --><div id="cpro_u2895327"><iframe id="iframeu2895327_0" src="http://pos.baidu.com/kcpm?rdid=2895327&amp;dc=3&amp;di=u2895327&amp;dri=0&amp;dis=0&amp;dai=1&amp;ps=908x1049&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1487658161699&amp;ti=JAVA%20%E9%9B%86%E5%90%88%20List%20%E5%88%86%E7%BB%84%E7%9A%84%E4%B8%A4%E7%A7%8D%E6%96%B9%E6%B3%95%20-%20yangxiaojun9238%E7%9A%84%E4%B8%93%E6%A0%8F%20-%20%E5%8D%9A%E5%AE%A2%E9%A2%91%E9%81%93%20-%20CSDN.NET&amp;ari=2&amp;dbv=2&amp;drs=3&amp;pcs=1349x662&amp;pss=1349x6895&amp;cfv=0&amp;cpl=5&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1487658161&amp;rw=662&amp;ltu=http%3A%2F%2Fblog.csdn.net%2Fyangxiaojun9238%2Farticle%2Fdetails%2F51500934&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DpC3Lxw1Xt3JfbmAMHgh7oVjYwzMUN9sFs1ZAaQycQmmyj-D8goMg9RmG5vmVZoWnRA2o6P11em6uAlmJh6nid5-l3_Y_9X_WjZ1eejC6aSi%26wd%3D%26eqid%3De542833a000555170000000358abbc5c&amp;ecd=1&amp;par=1366x768&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=7&amp;col=zh-CN&amp;cdo=-1&amp;sr=1366x768&amp;tcn=1487658162&amp;qn=b497df28aa28c99d&amp;tt=1487658161683.20.21.24" width="300" height="250" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="border:0; vertical-align:bottom;margin:0;" allowtransparency="true"></iframe></div></div><script> document.getElementById('popuLayer_js_q').onload=function(){ var styObjd=styObj={width:'300px','height':parseInt(250)+28};window.CSDN.Layer.PopuLayer('#layerd',{storageName:'layerd',styleObj:styObjd,total:50,expoire:1000*60}); }</script><!-- 投放代码 --><script type="text/javascript"> /*服务器频道首页置顶Banner960*90,创建于2014-7-3*/ (window.cproArray = window.cproArray || []).push({ id: 'u2895327' }); </script> <script src="http://cpro.baidustatic.com/cpro/ui/c.js" type="text/javascript"></script></div>
  3. <!-- 广告位结束 -->
查看评论

  暂无评论

您还没有登录,请[登录][注册]
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
  1. <div id="ad_bot">
  2. </div>
  1. <a id="quick-reply" class="btn btn-top q-reply" title="快速回复" style="display:none;">
  2. <img src="http://static.blog.csdn.net/images/blog-icon-reply.png" alt="快速回复">
  3. </a>
  4. <a id="d-top-a" class="btn btn-top backtop" style="display: none;" title="返回顶部" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_huidaodingbu'])">
  5. <img src="http://static.blog.csdn.net/images/top.png" alt="TOP">
  6. </a>

.tag_list
{
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #D7CBC1;
color: #000000;
font-size: 12px;
line-height: 20px;
list-style: none outside none;
margin: 10px 2% 0 1%;
padding: 1px;
}
.tag_list h5
{
background: none repeat scroll 0 0 #E0DBD3;
color: #47381C;
font-size: 12px;
height: 24px;
line-height: 24px;
padding: 0 5px;
margin: 0;
}
.tag_list h5 a
{
color: #47381C;
}
.classify
{
margin: 10px 0;
padding: 4px 12px 8px;
}
.classify a
{
margin-right: 20px;
white-space: nowrap;
}

JAVA 集合 List 分组的两种方法的更多相关文章

  1. java字符串大小写转换的两种方法

    转载自:飞扬青春sina blogjava字符串大小写转换的两种方法 import java.io..* public class convertToPrintString {          pu ...

  2. java集合进行排序的两种方式

    java集合的工具类Collections中提供了两种排序的方法,分别是: Collections.sort(List list) Collections.sort(List list,Compara ...

  3. List集合序列排序的两种方法

    首先讲一下Comparable接口和Comparator接口,以及他们之间的差异.有助于Collections.sort()方法的使用.请参考 1.Comparable自然规则排序//在自定义类Stu ...

  4. java连接Access数据库的两种方法

    where ziduan  in(select  ziduan from  table) 嵌套 ResultSet rs = pst.executeQuery();List list = new Ar ...

  5. Java获得键盘输入的两种方法

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  6. Java获取当前类名的两种方法

    适用于非静态方法:this.getClass().getName() 适用于静态方法:Thread.currentThread().getStackTrace()[1].getClassName() ...

  7. Java中HashMap遍历的两种方法(转)

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  8. Java导出Excel文件的两种方法

    将数据以Excel表格的形式导出:首先下载poi的jar包,导入项目中,或者使用maven仓库管理,在pom文件添加:<dependency>    <groupId>org. ...

  9. Java遍历文件夹的两种方法(非递归和递归)

    import java.io.File; import java.util.LinkedList; public class FileSystem {    public static int num ...

随机推荐

  1. Python结合Pywinauto 进行 Windows UI 自动化

    转:Python结合Pywinauto 进行 Windows UI 自动化 https://blog.csdn.net/z_johnny/article/details/52778064 说明:Pyw ...

  2. java中对于多态的一个实例分析

    首先来看这样的一段代码,其中对于类的定义如下: class Parent{ public int myValue=100; public void printValue() { System.out. ...

  3. js图片轮换播放器

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...

  4. 【PAT甲级】1054 The Dominant Color (20 分)

    题意: 输入两个正整数M和N(M<=800,N<=600),分别代表一张图片的宽度和高度,接着输入N行每行包括M个点的颜色编号,输出这张图片主导色的编号.(一张图片的主导色占据了一半以上的 ...

  5. 解决centos7命令无法补全

    背景 偶然发现本地虚拟机centos 7.7配置firewalld-cmd命令行无法补全,手敲命令太多,着实麻烦 解决方案 安装linux命令行补全工具,还能够补全命令参数 yum install b ...

  6. iOS 混合开发之 Cordova 实践

    在15年时,之前公司使用 Cordova 做混合开发使用,后来公司没有用到了,现在重新记录下. Cordova (官网:http://cordova.apache.org/)简介: Apache Co ...

  7. 《JavaScript高级程序设计》读书笔记(二)在html中使用JavaScript

    主要内容---使用<script>元素---嵌入脚本与外部脚本---文档模式对JavaScript的影响---考虑禁用JavaScript的场景 <script>元素---向h ...

  8. Go文档:go命令

    目录 go go bug--启动bug报告 go build--编译包及其依赖包 go clean--删除对象文件和缓存文件 go doc--查看包或符号的文档 go env--打印环境变量 go f ...

  9. Matlab利用subplot绘制多个图像

    利用subplot绘制多个图像 subplot(m,n,p) subplot是将多个图画到一个平面上的函数,m是行,n是列,p是所要绘制图所在的位置 x = 0:0.1:100; sinY = sin ...

  10. PTA的Python练习题(三)

    继续在PTA上编写Python的编程题. 从 第2章-11 求平方与倒数序列的部分和 开始 1. a,b=map(int,input().split()) s=0 while(a<=b): s= ...