
java集合与数据结构
永不言弃12345
年轻人总是会找借口说这个东西不是我所感兴趣的,所以我做不好是应该的。 但他们没有注意的是,你面对的事情中感兴趣的是总是少数,这就使得大多数你做事情的态度总是很懈怠,很消极,这使你变成了一个很懈怠得人。当你面对自己感兴趣的东西时,你发现你已经攥不急紧拳头了。
展开
-
二叉树1
1.树:概念:n个有限节点组成的具有层次关系的集合特性:根节点没有前驱子节点只有一个父节点N个节点n-1条边概念:节点的度:节点拥有子树的个数树的度:树中节点最大的度叶子结点或者终端节点:度为0双亲结点或者父节点:孩子节点:根节点;没有双亲的节点节点的层次:如果没有特殊说明,根节点在第一层深度:节点的层次非终端节点:度不为0兄弟节点:居于相同双亲的节点堂兄弟节点:双亲在同一层节点的祖先:从根到所经分支的所有节点子孙:一某节点为根的子树中任一节点森林:树的集合树的表示形原创 2020-09-23 17:48:36 · 992 阅读 · 0 评论 -
Set
Set1.概念:接口,继承自collection,只存储了key2.注意事项:1key唯一,不能修改;不能插入空的key2.去重3.set的底层是使用Map实现的,其使用key与Object的一个默认对象插入到Map中3.常用apiBoolean add()//添加元素1.key存在,不能再添加2.key并不存在,可以直接添加contains(Object o)//判断o是否在集合中Boolean remove(Object o)//删除o1.key存在,返回true2.key不原创 2020-09-22 15:58:20 · 106 阅读 · 0 评论 -
Map
文章目录Map1.概念:2.注意事项:3.api4.treeMap,hashMap,hashTable,LinkedHashMap的区别?5.map排序:Map1.概念:接口类,继承没有继承自Collection,存储的是<key,value>键值对;key不可以重复2.注意事项:1.key是唯一,不能为空;value可以修改,key不可以修改2.map为接口3.api获得键值对:Map.Entry<k,v>键值对实体Map.Entery类getKey()ge原创 2020-09-22 15:54:46 · 276 阅读 · 0 评论 -
Stack
栈:概念:特殊的线性表只能在固定的一段进行插入和删除(栈顶)原则:后进先出压栈:入数据在栈顶出栈:出数据在栈顶实现:顺序表,尾插+尾删E push(E item)压栈E pop()出栈E peek()查看栈顶元素Boolean empty()判断栈是否为空intsearch(Object)返回一个对象在此堆栈上的基于1的位置。public class MyStack { public static void main(String[] args) { Sta原创 2020-07-31 08:21:09 · 111 阅读 · 0 评论 -
泛型
泛型:将类型参数化 E的类型就是将来存储对象的实际类型泛型类:就是把泛型定义在类上,用户使用该类的时候,才把类型明确下来…泛型的分类:泛型类 泛型方法语法:< >泛型的标志 编译阶段不确定E类型变量,在定义时是形参,代表的是最终传入的类型;泛型类可以一次有多个类型变量,用逗号分割整个称为ArrayList泛型类型整个ArrayList称为参数化的类型ParameterizedTypeMyArrayList l1=new MyArrayList< >告诉编译原创 2020-07-30 12:21:52 · 118 阅读 · 0 评论 -
java中的ArrayList和LinkedList
java中的ArrayList构造一个初始容量为10的空列表它具有如下特点:容量不固定,随着容量的增加而动态扩容(阈值基本不会达到)有序集合(插入的顺序==输出的顺序)插入的元素可以为null增删改查效率更高(相对于LinkedList来说)线程不安全java中的ArrayList:add()remove(int index)//删除顺序表中i号位置的元素:将i号位置以后的元素,都向前移动一个元素size()get()isEmpty()Object[] toArray()se原创 2020-07-30 12:16:26 · 161 阅读 · 0 评论 -
队列
队列:概念:只允许在一端进行插入数据操作(队尾rear),再另一端进行删除(队头front)实现:数组;链表(头插,尾删)特性:先进先出入队列:offer(e)出队列:poll()队首元素:peek()假溢出:不可以添加元素,否组会造成数组越界此时又不应该扩充数组,因为还有大量实际空间并未使用解决假溢出:循环队列数组实现下标移动:如何区满与空;空的循环队列:front=rear满的循环队列:(rear+1)%size=front队列长度:(rear-front+size)%s原创 2020-07-28 17:41:13 · 128 阅读 · 0 评论 -
二叉搜索树性质及插入,删除,是否存在
二叉搜索树又称二叉排序树,它或者是一颗空树1.性质:若他的左子树不为空,则左子树所有节点的值小于根节点的值若他的右子树不为空,则有字数上所有节点都小于根节点的值它的左右子树也分别为二叉搜索树2.作用:用来进行搜索3.二叉搜索树注意事项:进行中序遍历,可以得到一个有序的序列树中最左侧节点一定是最小的节点,最右侧节点一定是最大的4.常见操作 static class BSTn...原创 2020-04-22 18:24:16 · 262 阅读 · 0 评论 -
对象的比较代码
class Card implements Comparable<Card> { int rank;//数值 String suit;//花色 Card(int rank,String suit){ this.rank=rank; this.suit=suit; } @Override ...原创 2020-03-25 16:31:55 · 108 阅读 · 0 评论 -
对象的比较
文章目录对象的比较1. equals()2.Comparable接口3.Comparator对象的比较8种基本类型以及其所对应的包装类型可以直接比较大小原因:底层比较是不一样的,标准库自带的用户自定义的类型不能比较大小?原因:标准库它怎么知道类对象中有那些成员,那些成员进行比较标准库:可以指定一系列规则,只要大家按照规则来,肯定可以自定义类型对象的比较1. equals()对于用户...原创 2020-03-25 16:27:38 · 187 阅读 · 0 评论 -
优先级队列
文章目录优先级队列1.优先级队列1.1概念+举例1.2常用接口介绍1.2.1优先级队列的特性1.2.2常用接口1.2.2.1构造方式1.2.2.2常用方法1.2.3.应用2.堆2.1堆的概念:2.2性质:2.3堆和数组的关系2.4向下调整2.5堆的创建2.6堆的向上调整优先级队列1.优先级队列1.1概念+举例队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,...原创 2020-03-25 15:04:13 · 457 阅读 · 0 评论 -
优先级队列代码
构造方法: MyPriorityQueue(C com ){ array=new int[11]; size=0; compare=com; }代码片2MyPriorityQueue(int initialCapacity,C com){ if(initialCapacity<1){//标准库会抛出...原创 2020-03-25 15:02:53 · 232 阅读 · 0 评论 -
java集合框架
Java集合框架1.集合框架的定义Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes其主要表现为将多个元素 element 置于一个单元中,增删查改 CRUD2.优点使用成熟的集合框架,有助于我们便捷、快速的写出高效、稳定的代码学习...原创 2020-02-28 16:30:08 · 96 阅读 · 0 评论 -
List
List1.泛型1.1泛型的定义尖括号 <> 是泛型的标志E 是类型变量(Type Variable),变量名一般要大写E 在定义时是形参,代表的意思是 最终传入的类型1.2分类泛型类泛型方法1.3作用1.增加编译期间的类型检查2. 取消类型转换的使用1.4总结泛型是作用在编译期间的一种机制,即运行期间没有泛型的概念。泛型是为了解决某些容器、...原创 2020-02-28 17:17:30 · 126 阅读 · 0 评论