`
eyes_on_you
  • 浏览: 21286 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java 实现数据库的group by

 
阅读更多

有下面一组数据,数据量大概有1000条左右,如何在时间复杂度是O(n)的前提下,实现分组

例如:

1 234
1 sds
2 sdsdsd
2 wwwwwww
1 ssassassww
4 sdsaass
5 234
1 skskks
.....

结果:

1 [234,sds,ssassassww,skskks]
5 [234]
2 [sds,sdsdsd]
4 [sdsaass]

 

package littlejava;

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

/*
 * 有下面一组数据,数据量大概有1000条左右,
 * 如何在时间复杂度是O(n)的前提下,实现分组 
 */
public class GroupBy 
{
	
	public static void main(String [] args)
	{
		String [] input= new String[] { "1:234", "1:sds",   
	            "2:sdsdsd", "2:wwwwwww", "1:ssassassww", "4:sdsaass", "5:234",   
	            "1:skskks" };
		List[]listArray = groupby(input);
		for(int i=0;i<listArray.length;i++)
		{
			List alist =  listArray[i];
			if(alist!=null)//不为null,就不要输出否则抛出异常
			{
				System.out.print(i+": ");
				for(int j=0;j<alist.size();j++)
				{
					System.out.print(alist.get(j)+",");
				}
				System.out.println();
			}
		}
		
	}
	
	public static List[] groupby(String [] arrayStr)
	{
		List[]listArray=new ArrayList[arrayStr.length];//只是生成一个数组,每个元素的ArrayList还没生成
		String strtemp;
		for(int i=0;i<arrayStr.length;i++)
		{
			strtemp=arrayStr[i];
			String str_index = strtemp.split(":")[0];   
	        String value = strtemp.split(":")[1];
	        int index = Integer.parseInt(str_index);
	        if(listArray[index]==null)
	        {
	        	listArray[index]=new ArrayList();//这是要生成ArrayList
	        }
	        
			listArray[index].add(value);		
		}
		
		return listArray;
	}
	
}

 

分享到:
评论

相关推荐

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

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

    全套java笔记数据库部分

    对于想要学习或提升Java数据库开发技能的人来说,这是一份非常宝贵的资料。通过深入学习这些笔记,读者可以掌握数据库设计、数据操作以及数据库性能优化等核心技能,为成为合格的Java EE开发者奠定坚实的基础。

    java数据库编程_代码

    10. **SQL语言基础**:了解基本的SQL语句,如SELECT,INSERT,UPDATE,DELETE,以及JOIN,WHERE,GROUP BY,HAVING等子句,是进行数据库编程的基础。 11. **异常处理**:在Java数据库编程中,需要捕获并处理`...

    JAVA数据库操作的小项目

    4. **JAVA数据库连接池**: 为了提高效率和性能,项目可能使用了诸如C3P0、HikariCP、Druid等数据库连接池实现。连接池可以预先创建一定数量的数据库连接,供多个请求共享,减少每次建立和关闭连接的开销。 5. **...

    java部分数据库课件

    Java开发者需要熟悉基本的SQL语句,如SELECT、INSERT、UPDATE、DELETE以及更复杂的JOIN、GROUP BY和HAVING子句。 4. DAO(Data Access Object)模式:这是一种设计模式,用于在业务逻辑层和数据库之间提供抽象层。...

    java连接mysql的 gui图形界 面实现增删改查

    在Java编程中,连接MySQL数据库并实现GUI图形界面的增删改查功能是一项常见的任务,尤其在开发桌面应用时。这个任务涉及到多个知识点,包括Java的数据库连接、Swing或JavaFX图形界面库的使用、SQL语言以及多线程处理...

    java数据库系统开发实例导航源码3

    理解SQL的聚合函数(如COUNT、SUM、AVG、MAX和MIN)以及分组(GROUP BY)和排序(ORDER BY)也至关重要。 事务处理是数据库系统中的关键概念,它确保了数据库的一致性和完整性。在Java中,你可以使用JDBC的...

    Java数据库技术详解 DOC简版

    3.4 GROUP BY和HAVING子句 3.5 INSERT语句 3.6 UPDATE语句 3.7 DELETE语句 3.8 本章小结 第4章 PL/SQL 4.1 PL/SQL简介 4.2 PL/SQL基础 4.3 本章小结 第二篇 JDBC篇 第5章 JDBC技术基础 5.1 ...

    Java连接数据库并完成查询等操作.zip_FHQ6_Java连接数据库并完成查询等操作_shape19f_连接编辑程序

    总的来说,这个项目涵盖了数据库连接、SQL查询、结果集处理等多个核心Java数据库编程概念,对于初学者来说是一次很好的实践机会。通过这个项目,开发者不仅可以学习到如何使用JDBC,还能了解到如何设计和实现一个...

    java web 连接数据库

    包括SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)等基本操作,以及JOIN、WHERE、GROUP BY、ORDER BY等高级特性。 6. PreparedStatement和Statement:Statement用于执行静态SQL语句,而...

    Java数据库编程PPT

    1. SELECT语句:用于从表中检索数据,可以指定特定列或所有列,并可以通过WHERE子句设置检索条件,GROUP BY和HAVING用于数据分组,ORDER BY用于排序。 2. INSERT语句:向表中添加新的数据行,可以指定插入的列和值,...

    数据库行变列查询 实现方法

    ### 数据库行变列查询实现方法 #### 一、引言 在数据库操作中,有时我们需要将表中的数据从行转换为列,这种操作被称为“行转列”或“行列互换”。例如,在一个学生成绩表中,原始数据可能按照学生姓名、科目和分数...

    mysql入门总结Java数据库

    ### MySQL入门总结与Java数据库应用 #### MySQL基本操作与命令详解 MySQL作为一款广泛使用的开源关系型数据库管理系统,其在数据存储、管理及查询方面提供了丰富的功能与命令。以下是对给定文件中提及的一些关键...

    Java嵌入式数据库H2学习大全

    - **数据查询语言(DQL):**如SELECT语句,支持GROUP BY、HAVING、ORDER BY等子句。 - **数据控制语言(DCL):**如GRANT、REVOKE等用于管理权限的命令。 H2还兼容多种数据库系统,包括IBM DB2、Apache Derby、...

    Java与数据库连接实际操作视频(学生管理系统)

    1. **Java数据库连接(JDBC)**:Java通过Java Database Connectivity (JDBC) API与各种数据库进行交互。JDBC提供了一组接口和类,使得开发者可以执行SQL语句,处理结果集,并管理数据库连接。在实际操作中,首先...

    Java典型应用彻查1000例-数据库应用基础

    10. **性能优化**:涵盖查询优化、连接池优化、缓存策略等,提升Java数据库应用的性能。 书中通过丰富的实例和代码示例,使读者能够快速理解和应用这些知识到实际项目中。无论是初学者还是有经验的开发者,都能从中...

    java中数据库应用

    在Java中进行数据库应用,了解SQL语句...总的来说,掌握SQL语句的执行顺序和优化原则是提升Java数据库应用性能的关键。通过良好的编程习惯和深入理解数据库工作原理,我们可以编写出既功能完备又性能卓越的数据库应用。

    Java数据库编程宝典4

    8.2 GROUP BY子句 8.3 聚合函数 8.4 使用HAVING子句筛选组 8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 ...

    Java数据库编程宝典3

    8.2 GROUP BY子句 8.3 聚合函数 8.4 使用HAVING子句筛选组 8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 ...

    数据库信息管理系统JAVA实现.pdf

    数据库信息管理系统JAVA实现主要涉及到Java编程语言在数据库管理系统中的应用,尤其在图书管理信息数据库系统设计上。这个项目旨在利用Java技术构建一个能够有效管理和处理图书信息的系统,包括存储、检索、更新和...

Global site tag (gtag.js) - Google Analytics