当前位置: 首页> 教育> 大学 > 旅游网络营销方式_查询企业信息_南昌网站设计_专业做网站公司

旅游网络营销方式_查询企业信息_南昌网站设计_专业做网站公司

时间:2025/7/10 21:48:47来源:https://blog.csdn.net/Wyc72409/article/details/146587142 浏览次数:1次
旅游网络营销方式_查询企业信息_南昌网站设计_专业做网站公司

Arrays操作工具

 

自己定义的排序规则

简单理解如果是:o1 - o2 升序排列

                        o2 - o1 降序排列

Lambda表达式

函数式编程

        函数式编程(Functional programming)是一种思想特点。

        面向对象:先去找对象,让对象做事情。。函数式编程思想可以忽略面向对象的复杂语法,强调做什么,而不是谁去做。

标准格式

例如:

注意:Lambda表达式可以用来简化匿名内部类的书写

        Lambda表达式只能简化函数式接口的匿名内部类的写法

        函数式接口:
        有且仅有一个抽象方法的接口叫做函数式接口,接口上方可以加@Functionallnterface注解

省略写法

集合

集合体系结构

List系列集合:添加元素是有序,可重复,有索引(有序是指存和取的顺序一样)

Set系列集合:添加的元素是无序,不重复,无索引

Collection

集合的方法

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。

remove方法中指定删除的是集合中的元素,而不是索引

contains(Object obj)方法,如果是存储的是自定义对象,自己重写equals方法哟

迭代器遍历

迭代器不依赖索引,所以Set也可以用。

迭代器在Java中的类是Iterato,迭代器是集合专用的遍历方式

Collection集合获取迭代器

Iterator中的常用方法

例子

注意:

增强for遍历

        ·增强for的底层就是迭代器,为了简化迭代器的代码书写的。

        ·它是JDK5之后出现的,其内部原理就是一个Iterator迭代器。

        ·所有的单列集合和数组才能用增强for进行遍历。

Lambda表达式遍历(forEach遍历)

提供了一种更简单、更直接的遍历集合的方式。

数据结构

数据结构(栈)

特点:后进先出,先进后出 

数据进入栈模型的过程称为:压/进栈

数据离开栈模型的过程称为:弹/出栈

数据结构(队列)

特点:先进先出,后进后出

数据从后端进入队列模型的过程称为:入队列

数据从后端进入队列模型的过程称为:出队列

数据结构(数组)

 特点:

查询速度快:查询数据通过地址值和索引定位,查询任意数据消耗时间相同。(元素在内存中是连续储存)。

删除效率低:要将原始数据删除,同时后面每个数据前移

添加效率低:

数据结构(链表)

链表中的结点是独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点地址。

链表查询慢。

链表增删相对较快 

双向链表可以提高查询速率,增删;

ArrayList集合底层原理

1·利用空参创建的集合,在底层创建一个默认长度为0的数组(elementDate)

2·添加第一个元素时,地城会创建一个新的默认长度为10的数组(此时的size既表示数组的大小,也表示下次存入的位置)

3·存满时,会扩容1.5倍

4·如果一次添加多个元素,1.5倍还放不下,则会新创建数组的长度以实际为准

LinkedList集合

·底层数据结构是双链表,查询慢,增删快,但是如果操作的是首尾元素,速度也是极快

·LinkedList本身多了很多直接操作首位元素的特有API

特有API

泛型

泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。

泛型的格式:<数据类型>

注意:泛型只能支持引用数据类型。

如果没有泛型,就可以再集合里面添加任意的数据类型

泛型的好处:

·统一数据类型。

·把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来。

编译时候就是限定泛型,在字节码文件时候就是Object类,获取时再转为泛型

泛型中不能写基本数据类型

指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型如果不写泛型

类型默认是Object

泛型可以在很多地方定义

泛型类

例如:

泛型方法

方法中形参类型不确定时,可以使用类名后面定义的泛型<E>

例子:

泛型接口

方式一:实现类给出具体类型

在实现接口时候给出具体类型

方式二:实现类延续泛型,创建对象时再确定

在实现接口是没有给出具体类型

泛型的继承和通配符

泛型不具备继承性,但是数据具备继承性

泛型通配符 ?

? 表示不确定的类型

? extends E:表示可以传递E或则E的所有子类类型

? super E:表示可以传递E或则E的所有父类类型

应用场景

        1.如果我们在定义类、方法、接口的时候,如果类型不确定,就可以定义泛型类、泛型方法、泛型接口。

        2.如果类型不确定,但是能知道以后只能传递某个继承体系中的,就可以泛型的通配符 

数据结构(树)

结构图:

度:每一个节点的子节点数量

二叉树中任意节点的度<=2

树高:树的总层数

根节点:最顶层的节点

左子节点:左下方的节点

右子节点:右下方的节点

每个节点包含:

二叉查找树:

二叉查找树,又称二叉排序树或者二叉搜索树

平衡二叉树

规则:任意节点左右子树高度差不超过1

二叉树的遍历方式

1·前序遍历

从根结点开始,然后按照当前结点,左子结点,右子结点的顺序遍历

2·中序遍历

从最左边的子节点开始,然后按照左子结点,当前结点,右子结点的顺序遍历

3·后序遍历

从最左边的子节点开始,然后按照左子结点,右子结点,当前结点的顺序遍历

4·层序遍历

从根节点开始一层一层的遍历

平衡二叉树左旋

1·第一种情况

2·第二种情况

平衡二叉树右旋

1·第一种情况

2·第二种情况

平衡二叉树需要旋转的四种情况

1·左左

一次右旋转

2·左右

先对其进行局部的左旋

在对其进行右旋

3·右右

一次左旋

3·右左

先进局部右旋

在进行左旋

红黑树

 ·红黑树是一种自平衡的二叉查找树,是计算机科学中用到的一种数据结构。

·1972年出现,当时被称为平衡树的的二叉B树。后来,1978年被修改为如今的“红黑树”。

·它是一种特殊的二叉查找树,红黑树的每一个节点上都有存储位表示节点的颜色,

·每一个节点可以是红或者黑;红黑树不是高度平衡的,他的平衡时通过“红黑规则”进行实现的。

红黑树规则

1 每一个节点或是红色的,或者是黑色的

2 根节点必须是黑色

3 如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为Nil,这些Nil视为叶节点,每个叶节点(Nil)是黑色的

4 如果某一个节点是红色,那么它的子节点必须是黑色(不能出现两个红色节点相连的情况)

5 对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点;

每一个节点包括

红黑树节点的添加规则

set系列集合:

无序:存取顺序不一致

不重复:可以去重复

无索引:没有带索引的的方法,所以不能使用普通的for循环遍历,也不能通过索引来获取元素

set系类集合的实现类

HashSet:无序,不重复,无索引

LinkedHashSet:有序,无重复,无索引

TreeSet:可排序,不重复,无索引

HashSet底层原理

·HashSet集合底层采用哈希表存储数据

·哈希表是一种对于增删改查数据性能都较好的结构

哈希表的组成

JDK8之前:数组+链表

JDK8开始:数组+链表+红黑树

哈希值

对象的整数表现形式

对象的哈希值的特点

重写hashCode方法:

LinkedHashSet底层原理

·有序,不重复,无索引。

·这里的有序指的是保证存储和取出的元素顺序一致

·原理:底层数据结构依然是哈希表,只是每个元素又额外多了一个双链表的机制记录存储的顺序。

TreeSet

不重复,无索引,可排序

可排序:按照元素的默认规则(有小到大)排序。

TreeSet集合底层是基于红黑树的数据结构实现排序的,增删改查性能都较好

TreeSet集合默认顺序

自定义排序

用自定义的类实现接口Comparable接口来自定义排序:

(优先级别更高)也可以直接在创建TreeSet对象时实现:

TreeSet<Students> set = new TreeSet<Students>(new Comparator<Students>() {@Overridepublic int compare(Students o1, Students o2) {int i;i = o1.getAge() - o2.getAge();if(i == 0){i = o1.getName().compareTo(o2.getName());}return i;}
});

总结

关键字:旅游网络营销方式_查询企业信息_南昌网站设计_专业做网站公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: