0 1

一个与java集合与数据库有关的面试题0

面试官现场给出的问题,当时没答上来,发这里大家一起看一下:
已知一个List对象,List<A> list...,大小有几万笔,A对象有id和name2个属性,A对象对应的数据库表是tableA,字段也是id和name,id是主键,表中有数据几十万笔,现在要求把list中与tableA中主键id相同的数据拿出来,放入另外一个List对象中,有没有高效率的方法?双层for循环就算了
2014年3月19日 22:04

7个答案 按时间排序 按投票排序

0 0

1:排序,二路归并比较,tableA用游标,不要一次全部装内存。
2:将list装入全局临时表,然后select查询。(用procedure输入输出可能快些)

2014年3月22日 02:58
0 0

1. 如果取出的list中的数据有序, 直接使用类似归并排序的操作求出交集(不需要额外空间), 时间线性

2. 已有的数据无序, 将一个list中的数据放到哈希表中, 另一个list来查询, 需要额外的空间, 时间线性.

2014年3月21日 12:58
0 0

把List那几万数据直接写到一个临时表,然后通过关联用SQL把数据计算出来,再加载到List。
这样不行?

2014年3月21日 09:08
0 0

两个方法,不知可行否:
一、将数据从表中读出以Set封装,将实体类的hashcode()和equals()覆盖一下,然后用一层for即可;

二、读取数据时按照ID排个序,以List封装,然后一层循环,用二分法效率应该要高些(对了,你的ID只可能是数字吧!?)

从效率的角度考虑我会用Set封装

2014年3月20日 16:49
0 0

直接使用ArrayList继承AbstractCollection的方法retainAll;                                   但是不知道几十万数据的效果如何;                                                     

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

public class TestCollection {
	public static void main(String[] args) {
		List<String> strList = new ArrayList<String>();
		List<String> strList2 = new ArrayList<String>();
		for (int i = 0; i < 10; i++) {
			strList.add("aaa:" + i);
			strList2.add("aaa:" + (10 - i));
		}

		// 求出交集
		strList2.retainAll(strList);
		System.out.println("交集大小:" + strList2.size());

		for (int i = 0; i < strList2.size(); i++) {
			System.out.println(strList2.get(i));
		}
	}
}
                                               

2014年3月20日 10:14
0 0

A对象在构造里面重写equals(Object o)方法,假如this和o两个对象的ID相同则返回true
table的数据全部取出来放进listB
然后listA.removeAll(listB)

2014年3月20日 09:56
0 0

有点意思,先提供两种思路
1, 把list中数据分成n份,开启n个线程,分别从tableA中直接过滤出匹配数据,最后组合成另一list.
2, 一次性把tableA中所有数据取出来放入map(key为id,val为name),只需循环list一次,依次从map中取出匹配的值放入另一list.(其中循环list也可用多线程实现).另外这种方式可能需要判断重复数据.

2014年3月20日 00:00

相关推荐

    个人面试题总结(java,数据库,前端).zip

    所以面试题数量也是不少的,里面也包含了个人的一些总结和见解,比如说在集合方面的知识点有实现的各自特点,他们之间的区别,以及等等原理和实现的细节,还包含了java和前端的面试宝典,一个宝典大概有500页左右,

    Java数据库面试题

    "Java数据库面试题" ...Java数据库面试题涵盖了数据库设计、性能优化、事务、触发器和存储过程、锁和批处理、游标和子查询等多个方面的知识点,对于 Java 开发者和数据库管理员来说都是非常重要的参考资料。

    JAVA面试题集合 大汇总 数据库 JSP

    本文将基于给定的标题“JAVA面试题集合 大汇总 数据库 JSP”和描述,深入探讨Java基础、数据库管理和JSP(Java Server Pages)等相关知识点。 1. **Java基础知识**:Java的基础知识是任何Java开发者必备的技能。这...

    java面试题集合java面试题集合java面试题集合

    Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,包括基础语法、面向对象、集合框架、多线程、JVM内存模型、异常处理、IO流、网络编程、设计模式、数据库操作、Spring框架、微服务等。下面将根据...

    java与数据库面试题集

    本面试题集旨在帮助求职者准备Java与数据库相关的面试,以展示他们的专业技能和深入理解。以下是对这些主题的详细阐述: 1. **Java基础知识**: - **类与对象**:Java是一种面向对象的语言,理解类的概念、对象的...

    JAVA,数据库面试题集锦

    首先,JAVA作为一门广泛使用的面向对象编程语言,其面试题通常会涵盖以下几个方面: 1. **JAVA基础**:包括数据类型、变量、运算符、流程控制语句(如if,switch,for,while等)、类与对象、封装、继承和多态等...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....

    尚硅谷JAVA数据库等面试题集

    【标题】"尚硅谷JAVA数据库等面试题集"所涵盖的知识点主要集中在Java、SSH(Struts+Spring+Hibernate)框架以及SQL这三大领域,这些都是IT行业尤其是软件开发中的核心技能。面试题集通常会包括各种技术问题,旨在...

    最新各大公司企业真实面试题-Java面试题

    Java是信息技术领域中...总的来说,这个压缩包为Java开发者提供了一个全面的复习资源,涵盖了从基础知识到高级应用的各种面试题,是准备Java面试的宝贵资料。求职者应深入理解和掌握这些知识点,以提高自己的竞争力。

    JAVA面试题JAVA面试题JAVA面试题

    Java面试题是每个Java开发者在求职过程中必须面对的挑战,涵盖范围广泛,涉及语言基础、数据结构、算法、多线程、JVM优化、框架应用等多个方面。以下是一些可能出现的Java面试知识点详解: 1. **Java语言基础** - ...

    Java+数据库面试题.zip

    以下是对"Java+数据库面试题.zip"中可能包含的重要知识点的详细说明: 1. **Java基础**: - **面向对象编程**:包括类、对象、封装、继承、多态等核心概念。 - **异常处理**:理解如何使用try-catch-finally语句...

    java面试题总结资料

    这份"java面试题总结资料"涵盖了多个Java核心领域的关键知识点,包括但不限于: 1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),变量的声明与使用,以及运算符的优先级。同时,要熟悉...

    2023java八股文高频面试题

    本资源主要包括Java基础知识、Java集合、多线程、IO操作、网络编程、数据库等方面的面试题目,以及一些实际应用场景下的编程题目。本资源所包含的面试题目丰富多彩,有些题目侧重于Java基础知识的考察,而有些题目则...

    java企业面试题大全(18个文档)

    7、java集合面试题.pdf。8、Java框架部分面试题.pdf。9、java面接.pdf。10、JAVA面试题集锦1.pdf。11、JAVA面试题集锦2.pdf。12、java算法面试题.pdf。13、程序员面试宝典.pdf。14、代码与编程题.pdf。15、各大公司...

    Java面试题2022

    3. **集合框架**:Java集合框架包括List、Set、Queue、Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。面试时可能会涉及它们的区别、使用场景以及性能分析。 4. **多线程**:Java提供强大的多...

    2017java面试题

    "2017java面试题"这个压缩包文件提供了丰富的资源,帮助Java开发者准备面试,深化对Java开发的理解。 文档"Java面试宝典2017.doc"可能包含了以下核心Java知识点: 1. **基础语法**:这包括变量、数据类型、运算符...

    Java面试题和练习题

    以上只是Java面试题和练习题的一部分,实际涵盖的内容会更广泛,包括JVM内存模型、设计模式、Spring框架、数据库操作等。通过系统学习和实践这些知识点,不仅能提高面试成功率,还能使你在Java开发领域更加专业。

    java面试题(算法+数据库)

    【Java面试题】 在Java面试中,面试官通常会考察候选人的算法基础以及数据库操作能力。这包括但不限于数据结构的理解、算法设计与分析、以及SQL的熟练运用。以下是相关知识点的详细介绍: 1. **算法基础**: - **...

    java面试题,包含常见面试题,阿里万字面试题,字节跳动面试题,数据库面试题,下载这一套就够,还是免费下载

    Java面试题是每个Java开发者在求职过程中必须面对的挑战,涵盖了广泛的领域,包括但不限于基础知识、设计模式、并发编程、集合框架、JVM优化、数据库、网络协议等。本篇文章将根据提供的文件信息,深入探讨这些关键...

Global site tag (gtag.js) - Google Analytics