有下面一组数据,数据量大概有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实现数据库编程知识点详解 #### 一、数据库的设计 **1. 规范设计数据库的步骤** - **收集信息**:明确需求,包括业务流程、数据需求等。 - **标识实体**:识别出系统中需要存储的主要对象或概念。 - ...
对于想要学习或提升Java数据库开发技能的人来说,这是一份非常宝贵的资料。通过深入学习这些笔记,读者可以掌握数据库设计、数据操作以及数据库性能优化等核心技能,为成为合格的Java EE开发者奠定坚实的基础。
10. **SQL语言基础**:了解基本的SQL语句,如SELECT,INSERT,UPDATE,DELETE,以及JOIN,WHERE,GROUP BY,HAVING等子句,是进行数据库编程的基础。 11. **异常处理**:在Java数据库编程中,需要捕获并处理`...
4. **JAVA数据库连接池**: 为了提高效率和性能,项目可能使用了诸如C3P0、HikariCP、Druid等数据库连接池实现。连接池可以预先创建一定数量的数据库连接,供多个请求共享,减少每次建立和关闭连接的开销。 5. **...
Java开发者需要熟悉基本的SQL语句,如SELECT、INSERT、UPDATE、DELETE以及更复杂的JOIN、GROUP BY和HAVING子句。 4. DAO(Data Access Object)模式:这是一种设计模式,用于在业务逻辑层和数据库之间提供抽象层。...
在Java编程中,连接MySQL数据库并实现GUI图形界面的增删改查功能是一项常见的任务,尤其在开发桌面应用时。这个任务涉及到多个知识点,包括Java的数据库连接、Swing或JavaFX图形界面库的使用、SQL语言以及多线程处理...
理解SQL的聚合函数(如COUNT、SUM、AVG、MAX和MIN)以及分组(GROUP BY)和排序(ORDER BY)也至关重要。 事务处理是数据库系统中的关键概念,它确保了数据库的一致性和完整性。在Java中,你可以使用JDBC的...
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 ...
总的来说,这个项目涵盖了数据库连接、SQL查询、结果集处理等多个核心Java数据库编程概念,对于初学者来说是一次很好的实践机会。通过这个项目,开发者不仅可以学习到如何使用JDBC,还能了解到如何设计和实现一个...
包括SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)等基本操作,以及JOIN、WHERE、GROUP BY、ORDER BY等高级特性。 6. PreparedStatement和Statement:Statement用于执行静态SQL语句,而...
1. SELECT语句:用于从表中检索数据,可以指定特定列或所有列,并可以通过WHERE子句设置检索条件,GROUP BY和HAVING用于数据分组,ORDER BY用于排序。 2. INSERT语句:向表中添加新的数据行,可以指定插入的列和值,...
### 数据库行变列查询实现方法 #### 一、引言 在数据库操作中,有时我们需要将表中的数据从行转换为列,这种操作被称为“行转列”或“行列互换”。例如,在一个学生成绩表中,原始数据可能按照学生姓名、科目和分数...
### MySQL入门总结与Java数据库应用 #### MySQL基本操作与命令详解 MySQL作为一款广泛使用的开源关系型数据库管理系统,其在数据存储、管理及查询方面提供了丰富的功能与命令。以下是对给定文件中提及的一些关键...
- **数据查询语言(DQL):**如SELECT语句,支持GROUP BY、HAVING、ORDER BY等子句。 - **数据控制语言(DCL):**如GRANT、REVOKE等用于管理权限的命令。 H2还兼容多种数据库系统,包括IBM DB2、Apache Derby、...
1. **Java数据库连接(JDBC)**:Java通过Java Database Connectivity (JDBC) API与各种数据库进行交互。JDBC提供了一组接口和类,使得开发者可以执行SQL语句,处理结果集,并管理数据库连接。在实际操作中,首先...
10. **性能优化**:涵盖查询优化、连接池优化、缓存策略等,提升Java数据库应用的性能。 书中通过丰富的实例和代码示例,使读者能够快速理解和应用这些知识到实际项目中。无论是初学者还是有经验的开发者,都能从中...
在Java中进行数据库应用,了解SQL语句...总的来说,掌握SQL语句的执行顺序和优化原则是提升Java数据库应用性能的关键。通过良好的编程习惯和深入理解数据库工作原理,我们可以编写出既功能完备又性能卓越的数据库应用。
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 外键 ...
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实现主要涉及到Java编程语言在数据库管理系统中的应用,尤其在图书管理信息数据库系统设计上。这个项目旨在利用Java技术构建一个能够有效管理和处理图书信息的系统,包括存储、检索、更新和...