12 2021 档案
摘要:文章目录 1.几种基本的算法思想 1.1 分治法 1.1.1 分治法概述 1.1.2 分治法递归问题实例学习 1.2.动态规划法 1.2.1 动态规划法概述 1.2.2 动态规划问题实例学习 1.3.回溯法 1.3.1 回溯法概述 1.3.2 回溯法问题实例学习 1.4.分支限界法 1.4.1 分支
阅读全文
摘要:上项目地址 https://gitee.com/yan-jiadou/study/tree/master/Java%E5%8A%A8%E6%89%8B%E5%81%9A%E4%B8%80%E5%81%9A/src/main/java/SortStudy 测试方法已经写了,采用的是自动测试,你只需调用
阅读全文
摘要:?=、?<=、?!、?<! 的使用区别: 1. ?= exp1(?=exp2):查找 exp2 前面的 exp1。 例子: public static void main(String[] args) { String str="life is a fuck _movie"; //获得一个正则表达式
阅读全文
摘要:1.定位符 下面的表达式匹配单词 Chapter 的开头三个字符,因为这三个字符出现在单词边界后面: \bCha \b 字符的位置是非常重要的。如果它位于要匹配的字符串的开始,它在单词的开始处查找匹配项。如果它位于字符串的结尾,它在单词的结尾处查找匹配项。例如,下面的表达式匹配单词 Chapter
阅读全文
摘要:1.限定符 2.实例学习 1){n} n 是一个非负整数。匹配确定的 n 次。 例子: public static void main(String[] args) { String str="liife is a fuck _movie"; //获得一个正则表达式对象 Pattern p = Pa
阅读全文
摘要:1.特殊字符 正则表达式中特殊字符的表格如下: 2.特殊字符实例学习 1).$ 匹配输入字符串的结尾位置 例子: public static void main(String[] args) { String str="life is a fuck _movie"; //获得一个正则表达式对象 Pa
阅读全文
摘要:1.最简单的正则表达式(字符串本身) 其实一个字符串本身就是一个正则表达式,它可以匹配和它相等的字符串 例如: //此方法使用正则表达式模式替换,将所有符合正则表达式的部分替换为后面的字符串 String str1="哈哈,我是你爸爸"; str1=str1.replaceAll("哈哈","嗨嗨"
阅读全文
摘要:1.首先,我们需要清楚Java中那些地方支持正则表达式 1)matches()方法 此方法用来判断字符串是否符合指定正则表达式的规则,如果符合就返回true,否则返回false 示例: public static void main(String[] args) { String str = "成都
阅读全文
摘要:如果我们想要将流中的数据转换为我们想要的类型的集合,我们可以通过下面的方法进行, 话不多说,直接开始看代码学习: package StreamStudy.Exa04; import java.util.*; import java.util.stream.Collectors; import jav
阅读全文
摘要:在对一个集合通过流处理完后,我们需要回去流处理的结果,这时我们就可以使用一系列方法进行获取。 注意:使用终结方法后,这个流将关闭,不允许再被使用。 代码就是最好的学习方式,下面请看代码: package StreamStudy.Exa04; import java.util.ArrayList; i
阅读全文
摘要:package StreamStudy.Exa03; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; import
阅读全文
摘要:1.流的分类 根据流的特性我们可以将流分为两大类: 1)有限流:顾名思义,就是流中的元素个数有限。 2)无限流:顾名思义,就是流中的元素个数是无限的。 2.实例学习 package StreamStudy.Exa02; import java.math.BigInteger; import java
阅读全文
摘要:1.集合流的定义 在对集合数据结构进行使用的过程中,我们有有时候需要对一个链表根据链表元素的状态对链表进行拆分,元素提取等操作,这些操作一般来说需要比较复杂的循环遍历判断等操作才能完成。 但是集合流的出现简化了这些操作,我们现在可以使用集合流通过一行代码就可以完成以前几十行代码才能完成的操作,这就是
阅读全文
摘要:我们都知道二分查找,下面我们尝试写一个适用于所有类型的数组二分查找泛型方法。 代码如下: /** * 泛型方法:二分查找法 * @param array 查找数组 * @param key 查找元素 * @param <T> 类型变量 * @return */ public static <T ex
阅读全文
摘要:1.为何需要泛型接口? 泛型接口其实就是泛型类的抽象表现,它的作用就是将泛型方法的实现延迟到子类中,让子类有权决定自己的泛型处理逻辑。 2.实例学习 2.1 泛型接口Maximum 首先我们新建一个抽象接口,其包含了对数组的排序操作,获取最大/小值操作。 public interface Maxim
阅读全文
摘要:1.本节重点 泛型范围约束,如本节标题所述,要编写一个泛型排序方法,是必须要有一定的约束条件的,而泛型提供的范围约束修饰符是实现稳定的泛型排序方法的关键。 如果我们希望声明的泛型只能是某些接口或类的子类,我们可以这样做: <T extends Comparable<T>> 如果我们希望声明的泛型只能
阅读全文
摘要:上一个例子是用泛型类的组合构建一个泛型类,那么如果有人问:如果想要从底层去构建一个泛型类,该怎么做? 答案就是这一节学习的内容,下面我们就用基本类型去构建一个泛型数据集合类。 除了使用Java泛型机制外,我们还需要使用java.lang.reflect.Array类来进行数组指定类型数组的创建。 1
阅读全文
摘要:我们知道Stack的基本特性是:只能对其顶部的元素进行操作(先进后出) 下面我们学习利用Jdk提供的泛型集合写一个泛型Stack,实现所有类型的push(弹入)和pop(弹出) 1 如果没有泛型 想象一下,如果没有泛型机制,我们该如何构建一个泛型栈? 相信大家和我一样,第一个想到的就是Object,
阅读全文