Collections类中的shuffle方法源码分析 shuffle方法可以将List中的数据随机打乱顺序,之前我们就使用了这个方法实现了扑克牌的洗牌功能,下面来看下shu...
Collection List(存取有序,有索引,可以重复) ArrayList 底层是数组实现的,线程不安全,查找和修改快,增和删比较慢 LinkedList 底层是链表实...
实现扑克的洗牌和发牌 分析: 初始化一副扑克牌数据,要实现洗牌的话,需要打乱扑克牌的顺序,所以不太适合用数组,因此 这里使用集合List来存放扑克牌数据,创建ArrayLis...
实现购物车功能 问题:实现一个购物车功能 分析:要实现这个功能,可以创建三个类,分别是Product商品类,ShopCart购物车类,Exercise测试类。 Product...
函数式编程 函数式编程是种编程范式。与之相对的是命令式编程,来做一下对比你就可以更好的理解函数式编程了。 比如要计算:(1 + 2) * 3 – 4的结果。 命令式编程: 当...
遍历集合的四种方式 下面以ArrayList为例展示一下遍历集合的四种方式,首先初始化一个ArrayList并填充一些测试数据 遍历集合方式一:使用普通for循环: 遍历集合...
什么是自动拆箱和自动装箱? 自动装箱:把基本类型转换为包装类类型 自动拆箱:把包装类类型转换为基本类型 以上特性是jdk5中加入的,也就是说在jdk5版本之前是不支持自动装箱...
Arrays工具类 在java.util包里面有个Arrays类,里面提供了排序和二分法查找的方法,程序员直接调用就行,而且这些方法都是静态的,所以在使用时不用创建对象。
二分法查找原理 使用二分法查找时需要以下两个条件: 没有重复元素 已经排好顺序 假设给定一组排好序且没有重复元素的数字,要从这些数字中快速找到x所在的位置,可以从这组数字的中...
冒泡排序原理 将要排序的一组数字进行遍历。 第一次遍历,将相邻的两个数字进行比较,直到这组数字全部比较完成,如果前面比后面的数字大,则进行交换位置,此时可以将最大的数字筛选出...
选择排序原理 将要排序的一组数字进行遍历。 第一次遍历,将第一个位置上的数字与后面的数字进行比较,如果后面的数字比第一个位置上的元素小,则将两个数字的位置进行交换。 第二次遍...
通过拷贝进行扩容在java语言里面,数组一旦创建好之后,长度是不可变的,倘若数组的长度不够使用了,装不下数据之后需要对数组进行扩容,那该如何扩容呢?可以再重新创建一个长度更大...
包装类 什么是包装类? Java里面8个基本数据类型都有相应的类,这些类叫做包装类。 包装类有什么优点 可以在对象中定义更多的功能方法操作该数据,方便开发者操作数据,例如基本...
StringBuffer简介 不要频繁的对字符进行拼接操作,例如下面代码: 每次对字符串修改,底层都会重新开辟新的堆内存空间,这样会开辟很多个空间地址,造成浪费。 如果需要对...
正则表达式简介 有的地方也叫做规则表达式,通过正则可以将符合某种规则的字符串匹配出来,比如要将"monkey1024study1j2a3v4a"这个字符串中的数字替换为"中"...
String类不能被继承 通过源码可以看到String类前面加了final修饰,因此String类是不能够被继承的。将其设置为不能被继承的原因是为了减少歧义。 字符串(Str...
String类常用方法 char charAt(int index);获取index位置的字符 boolean contains(CharSequence s);判断字符串中...
抽象的概念 抽象这个词说白了就是看不懂,毕加索的画一般都是被称为抽象的。在java里面可以使用关键字abstract修饰一个类,这样的类被称为抽象类,abstract修饰的方...