- 博客(17)
- 收藏
- 关注
原创 希尔排序(Java)
希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。public static void shellSort(int[] arr){ int tep = arr.length;//增量每次减半 while (tep / 2 > 0){ ...
2020-02-16 19:02:28
106
原创 八皇后问题求解java(回溯法算法)
八皇后问题八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。public class EightQueen { static int count = 0;//记录有几种方法 int max = ...
2020-02-15 13:38:02
291
原创 中缀表达式转后缀表达式
/** * 将中缀表达式改后缀表达式计算 * 1)将中缀表达式改为存在ArrayList中的中缀表达式[1,+,(,(,2,+,3,),*,4,),-,6] * 2) 将存在ArrayList中的中缀表达式 变为 存在ArrayList中的后缀表达式 */public class InfixToSuffix { public static void main(String[] a...
2020-02-14 22:37:02
108
原创 逆波兰计算器:输入一个逆波兰表达式(后缀表达式),应用栈计算结果
public class ReversePolish { public static void main(String[] args) { //例子:(40+3)*5-6 => 40 3 + 5 * 6 - //测试:20+5*6-8/2 => 20 5 6 * + 8 2 / - String PostfixExpressi...
2020-02-14 20:16:08
200
原创 【数据结构】Josephu(约瑟夫、约瑟夫环) 问题,单向环形链表
Josephu问题问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。一、思路及分析一)、构建单向环形链表创建一个first节点,指向编号为k的节点,形成环形链表后面依次创建编号为 k % n的节点...
2020-01-11 01:53:18
261
原创 多线程创建的方式之三:实现Callable接口的方法
方式三:实现Callable接口Callable 接口类似于 Runnable,两者都是为那些其实例能被另一个线程执行的类设计的。但是 Runnable 不会回结果,并且无法抛出经过检查的异常。class Thread implements Callable<>{ @Override public Object call() throws Exception { ...
2019-10-30 17:48:09
164
原创 Map接口中的类及方法
Map接口 * |---Map:双列数据,存储Key-value对的数据 ----类似于函数:y=f(x) * |---HashMap:作为Map的主要实现类:线程不安全,效率高,存储null的key和value * |---LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历 * 原因:在原有的Ha...
2019-10-09 21:29:50
349
原创 集合框架中Collection接口的方法和使用
一、集合框架的概述1.集合、数组都是对多个数据进行储存操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)2.1数组在存储多个数据方面的特点: > 一旦初始化后,长度就确定了。 > 数组一旦定义好,其元素的类型也就确定了。我们只能操作指定类型的数据了。 比如:stri...
2019-10-09 00:28:24
282
原创 Java中的注解
注解 (Annotation) 概述==>Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理。==>在JavaSE中,注解的使用目的比较简单;在JavaEE/Android中注解占据了更重要的角色,例如:用来配置应用程序的任何切面, 代替JavaEE旧版中所遗留的繁冗代码和XML配置等。==>一定程度上可以说...
2019-09-29 00:59:57
90
原创 枚举类的使用
JDK1.5之前需要自定义枚举类JDK 1.5 新增的 enum 关键字用于定义枚举类》 使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类》枚举类的构造器只能使用 private 权限修饰符》列出的实例系统会自动添加 public static final 修饰》必须在枚举类的第一行声明枚举类对象Enum类的主要方法:values()方...
2019-09-29 00:48:54
125
原创 Java比较器及Math类常用方法
Java实现对象排序的方式有两种:自然排序: java.lang.Comparable定制排序: java.util.ComparatorComparable比较商品,并按照一定顺序排列class Goods implements Comparable { private String name; private double price; //按照价格,比较商品的大小 @Ove...
2019-09-28 00:20:43
109
原创 java中日期时间API
1. java.lang.System类System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。long timeMillis = System.currentTimeMillis(); System.out.println(timeMillis);//1569...
2019-09-28 00:09:50
145
原创 常用类:String类、StringBuffer类、StringBuilder类
String类2.String实现了Serializable接口,表示字符串是支持序列化的 实现了Comparable,表示String可以比较大小3.String内部定义了final char[] vaiue用于储存字符串数据4.String代表不可变的字符序列 体现:当对字符串重新赋值时,需重写指定内存区域赋值5.通过字面量的方式给一个字符串赋值,此时的...
2019-09-27 23:47:17
185
原创 将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反 转为”abfedcg”
将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”public class StringTest { //方法一 public String reverse(String str,int begindex,int endIndex){ if (str != null){ char[] char...
2019-09-27 23:29:18
2875
原创 Java中JDK5.0新增线程创建方式
新增方式一:实现Callable接口1.创建一个实现Callable接口的实现类2.实现Call方法,将此线程需要执行的操作声明在call中3.创建Callable接口的实现类的对象4.将此Callable接口的实现对象作为参数传递到FutureTask构造器中,创建FutureTask对象5.将FutureTask的对象作为参数传递到Thread构造器中,创建Thread对象并调用st...
2019-09-26 13:27:46
122
原创 线程安全及其解决方法
线程的生命周期java语言使用Thread类及其子类的对象来表示线程, 在它的一个完整的生命周期中通常要经历五种状态:新建、就绪、运行、阻塞、死亡。线程的同步多个线程同时进行就会出现线程安全的问题例题:模拟火车站售票程序,开启三个窗口售票。(具体代码见添加链接描述)解决办法Synchronized的使用方法方式一:同步代码块synchronized(同步监视器){//需要被同步...
2019-09-26 02:06:53
304
原创 多线程的创建与使用
多线程的概念程序:是为了完成特定任务,用某种语言编写的一组指令的集合,即指一段静态代码。进程:是程序的一次执行过程,或是正在进行的一个程序,是一个动态的过程:有它自身的产生、存在和消亡过程——生命周期。线程:进程可进一步细化为线程,是一个程序内部的一条执行路径。内存结构:进程可进一步细化为线程每个线程,拥有自己独立的:栈、程序计数器。多个线程,共享同一个进程中的结构:方法区、堆。...
2019-09-25 17:40:50
128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人