`
fengbin_89
  • 浏览: 39652 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java实现多字段sql分组

阅读更多
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


public class Java_group_sql {
  public static final Object[] arr1=new Object[]{"11","22","33","44","55"};
  public static final Object[] arr2=new Object[]{"22","22","33","44","55"};
  public static final Object[] arr3=new Object[]{"33","22","33","44","55"};
  public static final Object[] arr4=new Object[]{"44","22","33","44","55"};
  public static final Object[] arr5=new Object[]{"11","22","33","44","55"};
  public static final Object[] arr6=new Object[]{"11","22","33","44","55"};
/**
  * list要分组的数据(数据中查询出或者其他)
  * @param list
  * @param idx 按照具体字段进行分组(idx是数组的下标)
   * @return
  */
  public static List<List<Object[]>> group(List<Object[]> list,int idx){
  Map<Object,List<Object[]>> map=new HashMap<Object, List<Object[]>>();
  for (int i = 0; i < list.size(); i++) {
List<Object[]> temp=null;
List<Object[]> value=(List<Object[]>)map.get(list.get(i)[idx].toString());
if(value==null){
temp=new ArrayList<Object[]>();
temp.add(list.get(i));
map.put(list.get(i)[idx].toString(), temp);
}else{
temp=(List<Object[]>)map.get(list.get(i)[idx].toString());
temp.add(list.get(i));
map.put(list.get(i)[idx].toString(), temp);
}
}
Iterator it=map.keySet().iterator();
List<List<Object[]>> resList=new ArrayList<List<Object[]>>();
Object key=null;
while(it.hasNext()){
key=it.next();
if(key!=null){
resList.add(map.get(key));
}
}
  return resList;
  }
  //测试
  public static void main(String[] args) {
List<Object[]> list=new ArrayList<Object[]>();
list.add(arr1);
list.add(arr2);
list.add(arr3);
list.add(arr4);
list.add(arr5);
list.add(arr6);
List<List<Object[]>> resList=group(list,0);
for (int i = 0; i < resList.size(); i++) {
List<Object[]> inner=resList.get(i);
System.out.println("==============");
for (int j = 0; j < inner.size(); j++) {
Object[] obj=inner.get(j);
System.out.println("["+obj[0]+","+obj[1]+","+obj[2]+","+obj[3]+"]");
}
}

}
}
分享到:
评论

相关推荐

    Java8进行多个字段分组统计的实例代码

    Java8多字段分组统计实例代码详解 Java8中多字段分组统计是指根据多个字段对数据进行分组和统计,生成相应...使用Java8实现多字段分组统计可以灵活地处理复杂的数据处理逻辑,但需要较高的编程能力和Java8的知识基础。

    sql数据库查询_java_java_sqlserver_sql_

    本主题将深入探讨如何使用Java连接SQL Server数据库并执行SQL查询,这涉及到多个关键知识点,包括Java的JDBC(Java Database Connectivity)API、SQL语言基础以及SQL Server的特性和配置。 首先,Java通过JDBC API...

    Java+++SQL+数据库+html笔试题.rar

    Java、SQL和HTML是计算机科学中的三大核心技术,广泛应用于软件开发和Web应用。这份"Java+++SQL+数据库+html笔试题.rar"压缩包文件显然包含了针对这些技术的精选笔试题目,旨在帮助求职者或者学习者准备相关的面试和...

    sql列数不固定查询语句

    以上就是关于如何处理列数不固定的SQL查询的具体实现方法。通过动态SQL的方式,我们可以灵活地应对不同情况下的数据查询需求,尤其适用于那些需要根据不同的业务逻辑动态调整查询字段的应用场景。这种方式虽然在编写...

    java面试题(SQL语句).pdf

    - SELECT:查询数据,是最常用的SQL语句,可以实现各种复杂的数据检索。 - DELETE:从表中删除符合特定条件的记录。 - UPDATE:更新表中已存在的记录。 - INSERT:向表中插入新的记录。 3. DCL(数据控制语言)...

    学生成绩管理系统 java+sql

    【学生成绩管理系统】是基于...综上所述,"学生成绩管理系统 java+sql"是一个综合运用了Java Web技术和SQL数据库的项目,涵盖了编程语言、框架、数据库设计与操作等多个领域,为教育管理提供了便捷的数字化解决方案。

    javaweb通讯录实现增删改查分组功能

    这可能需要在数据库中设立额外的表来存储联系人与分组的关系,或者在现有的联系人表中增加分组字段。在前端,用户可以通过界面选择或创建分组,而后端需要处理这些请求,将联系人分配到相应的分组中。 至于"并在...

    sql面试题java

    在SQL面试中,掌握一些关键的查询技巧是至关重要的,特别是对于Java开发者而言,因为数据库操作经常是应用程序的核心部分。以下是一些从给定题目中提取的重要知识点: 1. **查询条件聚合** - 题目要求找到所有每门...

    Java面试SQL查询语句突击练习

    在Java面试中,SQL查询语句是不可或缺的一部分,尤其是在涉及数据处理、数据分析或者数据库管理的职位上。MySQL作为最常用的关系型数据库管理系统之一,对于Java开发者来说,掌握其SQL使用技巧至关重要。本资料"Java...

    诚欣网上购物系统(Java+sql)

    "诚欣网上购物系统(Java+sql)"是一个基于Java技术和SQL数据库实现的电子商务平台,旨在为初学者提供学习和实践的机会。在这个系统中,Java作为主要的开发语言,用于构建前端用户界面、后端服务器逻辑以及与数据库的...

    使用Java实现数据库编程笔记.txt

    ### 使用Java实现数据库编程知识点详解 #### 一、数据库的设计 **1. 规范设计数据库的步骤** - **收集信息**:明确需求,包括业务流程、数据需求等。 - **标识实体**:识别出系统中需要存储的主要对象或概念。 - ...

    在Java中用SQL语句操作实用举例

    在Java中,通常使用JDBC(Java Database Connectivity)来实现SQL语句的执行。首先,需要加载数据库驱动,建立到数据库的连接,然后创建Statement或PreparedStatement对象来执行SQL。例如,使用PreparedStatement...

    java按照每周分组 改进版

    标题“Java按照每周分组 改进版”指的是在Java编程中实现数据按照周进行分组的一种优化方法。这通常涉及到日期处理、集合操作以及可能的数据库查询优化。在这个场景中,开发者可能需要将一系列记录根据它们的时间戳...

    kmeans聚类算法的java实现

    在Java中实现KMeans算法,我们可以利用编程语言的强大功能来处理大规模数据集,并将其应用于实际问题,如本例中的数据库字段分组。 1. **KMeans算法基本原理**: KMeans算法主要包含以下步骤: - 初始化:选择K个...

    SQLServer2008分页存储过程和java调用

    PagingOperation数据库SQLServer2008分页存储过程(和java调用存储过程源代码): ...支持多字段) -- 条件语句(不用加where)-- 指定当前为第几页 每页多少条记录 --分组语句(不用加Group by) --返回总记录条数

    Lucene group by ,分组实现

    "Lucene group by" 指的就是在 Lucene 中实现基于特定字段的分组操作,类似于 SQL 中的 GROUP BY 子句。这使得用户能够按类别聚合文档,例如,根据作者、日期或其他分类标准来查看搜索结果。 在 Lucene 中,分组...

    毕业设计 计算机专业-Java JAVA+SQL电子通讯录带系统托盘(论文+源代码

    设计一个合适的数据库模型是电子通讯录的关键,可能包含联系人表(包括姓名、电话、邮箱等字段)、分组表(用于分类联系人)等。开发者会使用SQL语句来操作这些表,如创建(CREATE TABLE)、查询(SELECT)、插入...

    Java_使用SQL查询Elasticsearch.zip

    查询结果通常会返回一个包含多条记录的数据结构,你可以遍历这些记录,提取出需要的字段。注意,由于Elasticsearch存储的数据是JSON格式,所以结果中的字段可能是嵌套的。 6. **性能优化**: - 索引设计:合理...

    Java对象的SQL接口 JoSQL

    JoSQL的核心概念是将Java对象映射到数据库表,通过定义对象的属性与表的字段对应,从而实现对数据库的CRUD(创建、读取、更新、删除)操作。这种映射机制类似于ORM(对象关系映射),但JoSQL更注重简单性和轻量级,...

    JoSQL(SQL for Java Objects)使开发人员能够将 SQL 语句应用于 Java 对象的集合

    例如,你可以编写 SQL 查询来过滤、排序、分组或者连接 Java 对象,就像你在数据库中执行操作一样。这种特性对于那些希望使用 SQL 语法而不是编写自定义迭代器或流操作的开发者来说非常有用。 JoSQL 支持的基本 SQL...

Global site tag (gtag.js) - Google Analytics