Java基础
文章平均质量分 80
upupday19
这个作者很懒,什么都没留下…
展开
-
java中的工具类
java.util包中常用的工具类Arrays数组工具类,其中的方法都是静态的。1、数组转成集合 List<T> asList(T... a) //返回一个受指定数组支持的固定大小的列表 //如果a中存放的是基本数据类型,那么返回的List集合中的类型是数组; //如果a中存放的是引用数据类型,对象,那么数组中的元素直接会转成集合中的元素2、二分查找 ...原创 2017-10-10 19:12:16 · 454 阅读 · 0 评论 -
递归求解复杂的枚举问题
一、问题概述 枚举就是列举出所有的情况。数据量较小时,比较容易列举,但是随着数据量增大,如果依然一一列举,可能会出现遗漏的情况,导致出错,这时候就可以考虑使用递归的方式进行,寻找递推关系。比如先获得数据规模是n-1的所有情况,那么求n就只需要在n-1的基础上做一些修改即可,这样就大大简化了问题,但是如果递归深度较大,可能会产生内存溢出的问题。 对于枚举问题,递归是一个较容易想到的解题思...原创 2018-04-25 14:47:42 · 750 阅读 · 0 评论 -
动态规划求解路径问题
动态规划求解的两个条件: 1)最优解问题 2)大问题可以拆分成小问题,大问题的最优解包含小问题的最优解,将小问题的最优解保存起来,在求大问题最优解的时候无需重新求解,直接拿来用即可。具体问题需求一: 给定m*n矩阵,从左上角出发,到右下角,每次只能向右走或者向下走,求共有多少路径?分析: 假设路径数是f(m, n),那么第一步如果向右走,那么有f(m, n-1)种走法,如果...原创 2018-04-26 22:05:22 · 1884 阅读 · 0 评论 -
String Compression
需求:给定一个字符数组chars,由若干个字符组成,现对其进行简化,比如"aaabbcc",将其转化成"a3b2c2",如果字符个数是1,那么不需要进行简化。要求in-place,即直接修改原始字符数组。分析:1)特殊情况处理:如果字符数组是null,那么抛出参数异常;如果字符数组长度是0或者1,那么无需进行简化,直接返回数组长度即可。2)定义三个变量,字符变量ch,存储出现的字符,整型变量num...原创 2018-05-19 19:51:02 · 289 阅读 · 0 评论 -
排序算法--java实现
之前总结过常见排序算法的时间复杂度、空间复杂度、是否稳定等特性,现将代码补上。代码:/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the t...原创 2018-05-21 21:00:28 · 194 阅读 · 0 评论 -
Group Anagrams
需求:Given an array of strings, group anagrams together.Example:Input: ["eat", "tea", "tan", "ate", "nat", "bat"],Output:[ ["ate","eat","tea"], ["nat",&原创 2018-05-21 22:14:03 · 367 阅读 · 0 评论 -
N-Queens I/II
需求:n皇后问题,有一个n*n的棋盘,有n个皇后,要保证每个皇后不能在同一行、同一列、同一对角线,这样才不会出现冲突,求解n皇后共有多少种放置方式。分析:1、创建n*n的char型二维数组,初始化为'.',表示没有放置皇后。2、因为皇后不能在同一行,所以将皇后i放到行i,逐行确定每个皇后的位置。假设,现在要确定皇后num(num的范围是0~n-1)的位置,如果num==n,那么说明已经找到了一个可...原创 2018-06-07 10:30:27 · 471 阅读 · 0 评论 -
Spiral Matrix I/II
需求:Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.Example 1:Input:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]Output: [1,2,3,6,9,8,7,4,5]分析:...原创 2018-06-07 14:26:07 · 169 阅读 · 0 评论 -
jump games I/II
需求I:Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Determine if yo...原创 2018-06-07 17:13:27 · 173 阅读 · 0 评论 -
多线程安全--生产者和消费者
在多线程安全中,使用较多的例子是生产者和消费者模型。 在这个模型中,生产者和消费者是两个独立的线程,但是他们操作的资源的共享的,生产者生产产品,消费者消费产品。假设资源用一个对象来抽象,该对象的set()和out()方法对应生产和消费,那么为了保证多线程安全,每次只能有一个生产者线程生产产品,即只有一个生产者线程可以调用set()函数,同样,每次只能有一个消费者消费产品,即只有一个消...原创 2018-03-20 22:04:43 · 547 阅读 · 0 评论 -
单例设计模式--java实现
单例设计模式是一种常见的软件设计模式,通过这种模式,可以保证系统中,该类只有一个实例对象。对于系统中的某些类来说,只有一个实例很重要,比如一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务。为了保证一个类只有一个实例对象,需要满足以下三个条件: 1、外界无法创建该类对象,所以该类对象的构造函数是私有的,外界无法使用。 2、既然外界无法创建该类对象,并且要保证该类只有一个实例对...原创 2018-03-15 20:18:49 · 252 阅读 · 0 评论 -
java中的File
File IO流只能操作文件中的数据,而无法操作文件,比如创建、删除文件等操作无法完成,这些方法都封装在File类中1、字段 static String separator//名称分隔符,linux中是/,Windows中是\ static String pathSeparator//路径分隔符,linux中是:,Windows中是; 都可跨平台2、构造函数 File...原创 2017-09-30 19:16:32 · 270 阅读 · 0 评论 -
java中的基本类
基本数据类型对象包装类,将基本数据类型封装成对象。体系Object |--Number |--Byte |--Double |--Float |--Integer |--Long |--Short |--Boolean |--CharacterNumber子类方法1、Number...原创 2017-09-30 18:47:25 · 237 阅读 · 0 评论 -
String和StringBuffer
一、String类--java.lang包1、获取 1)int length();//获取字符串长度,此处是个方法,而数组的长度是属性 2)char charAt(int index);//获取角标index处的字符 3)int indexOf(int ch);//正向索引,返回字符ch第一次出现的角标,如果没有就返回-1 4)int indexOf(int ch, ...原创 2017-09-30 17:00:59 · 292 阅读 · 0 评论 -
java实现程序运行次数限定
需求: 限定程序运行次数,当程序运行到限定次数时,提示不能再使用。分析: 需要使用计数变量记录程序执行次数,如果是把计数变量是局部变量或者成员变量,当程序结束后,该变量在内存中会消失,因此需要使用配置信息记录该计数值,当程序运行一次,该值自增一次,配置信息保存到配置文件中。程序每次执行时,先从该配置文件中获取次数,判断是否达到限定值,如果达到就终止程序并输出提示信息,否则自增,并把修改...原创 2017-09-27 15:22:22 · 5251 阅读 · 0 评论 -
java中几个概念的总结
抽象 abstract,是修饰符,用来修饰类和函数。抽象就是不具体,当子类当中有些函数的声明相同,但是功能主体不同,就可以将函数声明定义成抽象方法封装在父类中,包含抽象方法的类是抽象类,抽象的父类无法创建实例对象,因为抽象方法不具体,只有当子类复写了父类中的全部抽象方法才能创建对象,才能使用抽象方法。所以抽象从某种意义上是强迫子类实现父类的抽象方法。抽象方法一定在抽象类中, 抽象类中的方法不...原创 2017-09-24 17:44:26 · 243 阅读 · 0 评论 -
java中的集合体系
集合体系1、CollectionCollection<T> |--List<T>(Iterator、ListIterator、get)允许元素重复,因为有角标索引 |--ArrayList<T> 底层是数组,查询较快,增删较慢。 |--LinkedList<T> 底层是链表,查询...原创 2017-09-24 16:56:21 · 479 阅读 · 0 评论 -
Java的IO总结
IO流的总结IO流分为字符流和字节流1、字符流体系基类;Reader、Writer字符读取流Reader |--InputStreamReader |--FileReader |--BufferedReader |--LineNumberReader字符写入流Writer |--OutputStreamWriter |--FileWriter |--B...原创 2017-09-22 22:38:00 · 213 阅读 · 0 评论 -
java实现二叉树
需求:构建二叉树,实现先序遍历、中序遍历、BFS、DFS。分析:1、与完全二叉树类似,只是有些非最后一层的节点只有左儿子或者右儿子,或者没有儿子节点。仍然可以参照完全二叉树,采用宽度优先遍历将所有节点信息写到数组中,对于完全二叉树,int[]数组即可,但是对于一般的二叉树,存在一些空节点,需要用特殊字符来表示空节点,此处用"#"表示,因此需要将二叉树各节点信息存到String[]数组中。2、使用B...原创 2017-12-05 18:54:51 · 209 阅读 · 0 评论 -
Set Matrix Zeroes
需求:Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place.Example 1:Input: [ [1,1,1], [1,0,1], [1,1,1]]Output: [ [1,0,1], [0,0,0], [1,0,1]]分析:1、...原创 2018-06-08 10:15:02 · 183 阅读 · 0 评论