自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java中的Iterator

我们在学习collection(集合)的时候,必然少不了和Iterator打交道,本文将介绍一下Iterator的相关概念和用法1.collection先来说说collection,collection是存储一些相同类型对象的集合,下面我介绍一下collection中用到最多的一些方法public interface Collection{ int size(); bool

2017-12-20 15:27:00 241

原创 java多线程实现的常用两种方法

作为或即将成为一名Java工程师,在工作和面试中必然要与多线程打交道,那么Java中的多线程是什么呢?我们先来聊一聊操作系统中的进程和线程1.进程和线程1.1进程和线程的区别进程简单来说就是操作系统中的一个任务,可以说是程序的执行,比如说你的电脑正在运行QQ和微信,那么这两个任务就是两个进程。而线程呢,是进程中不可或缺的一部分,一个进程中包含1-n个线程。两者比较官方的区别就是:

2017-12-20 10:04:40 5219 1

原创 合并两个已排序的链表

题目:输入两个递增排序的链表,合并这两个链表并使得新链表中的结点仍然按照顺序排序分析:这个问题一出来,马上就可以想到递归的思想,这种思想在链表以及树的操作中相当常见,在本题中主要涉及的还是链表中值得比较,比较出较小的结点就插入新的链表中,然后再比较下一个结点,直接上代码就一目了然了。public static class ListNode{ int value;

2017-12-19 18:46:12 221

原创 单链表的反转

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点分析:1.递归反转法在反转当前节点之前先反转后续节点。这样从头结点开始,层层深入直到尾结点才开始反转指针域的指向。简单的说就是从尾结点开始,逆向反转各个结点的指针域指向,递归反转发是使用的比较普遍的方法也是容易想到的方法代码实现:链表类public class ReserveLinkedLis

2017-12-19 14:23:46 231

原创 在一个链表中,查找倒数的第k个节点

题目:在一个链表中,给定链表的头节点以及指定k值,找出该链表中倒数第k个节点分析:如果在数组中查找倒数第k个节点的话,只需要先计算倒数第k个节点的下标,然后直接访问该处的元素即可,但是链表的元素并不是以数组的形式存储的,那么我们需要另找方法,在链表中,除头结点以及尾节点外,每个节点都有其前后的节点,我们可以使用两个指针,第一个指针先指向第k个节点,第二个指向头节点,然后两个节点同时向尾部移

2017-12-18 13:55:31 385

原创 mysql中的自然联结、内联结、外联结

1.自然联结定义:无论何时对表进行联结,应该至少有一个列出现不止一个表中(被联结的列)。标准的联结返回所有数据,甚至相同的列多次出现。自然联结排除多次出现,使每个列只返回一次;(也就是说,自然联结的作用就是排除多次出现,使每个列只返回一次)文字没描述完了,可能有的同学还不是很理解其中的意思,下面上例子吧,更直观:例如有表R和表S,表的内容如下: R表

2017-12-15 10:44:44 5153 2

原创 调整数组使奇数位于偶数前面

题目:调整一个数组,实现一个函数使得所有奇数位于数组的前半部分,偶数位于数组的后半部分。分析:这个题目比较简单,可以用双指针的做法来完成,具体思路:一个指针指向数组的开始位置,一个指针指向数组的尾部,如果开始位置的元素为偶数,结束的位置为奇数,那么则交换两个元素的位置,然后第一个指针向后移动,第二个指针向前移动,知道两个指针相遇代码实现如下

2017-12-15 09:47:39 219

原创 在O(1)时间删除链表节点

题目:给定单链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点分析:1.在寻常的单链表中删除一个节点,使用的最多的做法就是从链表的头结点开始,遍历链表,找到要删除的节点,并在链表中删除该节点,比如我要删除链表中节点b,我在遍历的时候找到了b节点的上一节点a,那么我可以把a节点的指针指向b节点的下一节点,这样就完成了对b节点的删除。但是需求规定的是我们完成删除操作时,时间复杂度

2017-12-14 19:28:10 336

原创 不使用库函数,求一个整数的n次幂(n为整数)

题目:不使用库函数,求一个整数的整数次方分析:1.第一种思路,在一个循环内完成代码如下double Power(double base, int exponent) { double ret = 1.0; for(int i=1; i<=exponent; i++) ret *= base; return ret;

2017-12-13 22:45:19 1021

原创 【剑指Offer学习】【面试题11 :统计一个十进制数中二进制1的个数】

 分析:1.很多人看到这个需求的时候,第一反应是先把给定的十进制数转换成二进制数,再把二进制数转换为字符数组,再遍历这个字符数组计算1出现的次数,但是存在一些问题,首先在没有Java相关类库使用的情况下,十进制转换为二进制这个过程应该是很复杂的,并且如果最求算法效率的话,对于数组所需的额外空间以及循环遍历的n次比较的开销是我们所希望避免的。2.然后我们有相关经验的程序员应该可以想到,既...

2017-12-13 15:46:59 1334

原创 Java中的位运算,包括移位、位与、或、异或、非

Java中的位运算包括:左移( > ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),特别注意:除了位非( ~ )是一元操作符外,其它的都是二元操作符。并且在进行位运算的时候,例如a&b操作,都需要首先把a和b转换成二进制再进行操作1.位与(&)规则:a&b,先把十进制数a b都转换为二进制数,&的运算规则是:第一个操作数a的第n位与

2017-12-13 12:09:13 343 1

原创 斐波那契数列

题目:对于给定的参数n,求出该参数n下对应斐波那契数列值分析:斐波那契数列的表达式为:当n=0时,f(n)=0,当n=1时,f(n)=1,当n>=2时,f(n)=f(n-1)+f(n-2)1.常规方法package com.company;public class Main { public static int fabonaci(int n){

2017-12-12 18:59:01 1161

原创 找出旋转数组中最小的元素

题目:把一个数组最开始的若干个元素移到数组的末尾,我们称之为数组的旋转。输入一个递增数组的一个旋转数组,输出旋转数组的最小元素,例如{3,4,5,1,2}为{1,2,3,4,5}的旋转分析:1.最简单的做法就是遍历该数组的所有元素,比较每个元素的大小,选出最小的元素。具体代码在此省略          2.如果我们要追求更好的算法效率,那么我们完全可以使用二分查找的思想,设置数组的开始

2017-12-12 15:20:37 446

原创 使用两个栈实现队列

需求:用两个栈实现一个队列。队列的声明如下,实现它的两个函数appendTail(入队) 和deleteHead(出队)思想:栈的特点是先

2017-12-11 21:24:26 190

原创 链表的逆序输出

【数据结构与算法】给定一个链表及该链表的头结点,要求实现链表的逆序输出 思考:可以用到栈的先入后出的特点,把链表的节点顺序入栈,然后一次出栈,这样就实现了链表的逆序输出相关代码:

2017-12-01 22:47:40 885

Java高级编程教案

Java高级编程教案,适合Java入门的学生或者上Java课的老师使用

2019-01-21

JAVA课设任务

用图形用户界面实现。 2、 能实现编辑、保存、另存为、查找替换等功能。 3、 提示:使用文件输入输出流。

2012-12-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除