A. java中有哪些数据结构
数据结构:
①数组 (Array)
在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数
据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组
元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指
针数组、结构数组等各种类别。
②栈 (Stack)
栈是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后
的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
③队列 (Queue)
一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行
插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
④链表 (Linked List)
一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:
一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
⑤树 (Tree)
树是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:
(1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)
(2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。
(3)K中各结点,对关系N来说可以有m个后继(m>=0)。
⑥堆 (Heap)
在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指
二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。
⑦图 (Graph)
图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,
边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
⑧散列表 (Hash)
若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称
这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。
差不多我就知道这些了~
B. 面试java程序员时被问到:如果你要写一个俄罗斯方块的游戏,每种方块你会考虑用什么数据结构怎么答
可以设想长条横着和竖着的情况,一个块可以由4*4的二维数组组成。其中由0表示空白,1表示有块。另外网上还有“88行俄罗斯方块”的大牛写的示例,是又把这个二进制数组转换成了一个相应的整数,空间效率很高。
C. java面试时的一个数据结构问题
importjava.util.Random;
publicclassShuiji{
String[]result;
intindex=0;
Randomran=newRandom();
publicShuiji(){
result=newString[100];
getResult();
for(inti=0;i<result.length;i++){
if(i%10==9){
System.out.println(""+result[i]+",");
}else{
System.out.print(""+result[i]+",");
}
}
}
publicstaticvoidmain(String[]args){
newShuiji();
}
publicvoidgetResult(){
for(inti=0;i<result.length;i++){
StringaddValue=getString();
if(containsValue(addValue)==true){
i--;
}else{
result[i]=addValue;
index++;
}
}
}
publicbooleancontainsValue(StringpValue){
booleancont=false;
for(inti=0;i<index;i++){
if(result[i].equals(pValue)){
cont=true;
break;
}
}
returncont;
}
publicStringgetString(){
intfirst=ran.nextInt(36);
StringBuffersb=newStringBuffer();
if(first<10){
sb.append((char)(48+first));
}else{
sb.append((char)(87+first));
}
intsecond=ran.nextInt(36);
if(second<10){
sb.append((char)(48+second));
}else{
sb.append((char)(87+second));
}
returnsb.toString();
}
}
我也不知道这种算法是不是够简单,可以参考一下。
D. 程序员小白如何通过Java面试
1、了解业内招聘要求:多看几家同类岗位的技术要求,大概就知道用人单位的需求了
2、多找找面试常见技术题:不同企业的面试题各种不同,多去找找,多背背
3、简历设计:这个就是要注意在简历中体现自己的项目经验、技术水平
4、面试现场反应:注意自己的着装、语言表达、技术表达
以上都是在你有专业技术的前提下进行的,如果专业技术就是小白,还是先提升专业技术吧
E. 新手初学Java有必要去学习数据结构与算法吗
还是有些必要的,大公司笔试面试基本都是靠计算机网络及数据结构与算法。
建议找些基础的算法如排序查找等入门就可以了,java新人用不到多深层次的算法,
新人初学Java的话建议还是讲基础知识弄通弄透比较好。
F. Java面试笔试,数据结构和算法考到什么程度
你说的那个数据结构不一定考的。
Java面试就那么点东西,各个公司也不一样。
有的分笔试和机试。这些公司想看看实际面试人员的能力,节省了以后的时候。
笔试中,无非就是一些概念性的东西巴了。
比如:jsp是servlet吗?
servlet的生存周期;还有一些面向对象的知识。这些平常用心的话都没问题,即使临阵磨枪也行。
那么机试就的要看你自己的能力了,对框架的属性程度。还有就是在也不能常见的对数据
库的CRUD也就是增删改查操作。机试都好这口。
其实面试如果也没笔试机试那么就问几道题的话,如果是技术人,几道题下来就知道你的底子了,在问些逻辑上的也就知道要你还是不要你了。
在有你要对一些数据库知识了解一些。
做java的
oracle
得达到掌握
sql
server
了解就行
基本语法啥的就可以了
mysql
这个也得达到掌握
别的就不要会用到
G. java数据结构是什么
数组(Array)
堆栈(Stack)
队列(Queue)
链表(Linked List)
树(Tree)
图(Graph)
堆(Heap)
散列表(Hash)
这些是常见的数据结构