![](https://img-blog.csdnimg.cn/20200420153324595.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
学习Java语言相关知识
C_LI_JA01
这个作者很懒,什么都没留下…
展开
-
Map和Set
搜索搜索,查找,也可称检索,是在大量的数据元素中找到某个特定的数据元素而进行的工作。一般把搜索的数据称为关键字(Key),和关键字对应的称为值(Value),所以模型会有两种:纯 key 模型,即我们 Set 要解决的事情,只需要判断关键字在不在集合中即可,没有关联的 value;Key-Value 模型,即我们 Map 要解决的事情,需要根据指定 Key 找到关联的 Value。Map使用Map.Entry<K, V> 即 Map 中定义的 K 类型的 key 和 V 类型的 v原创 2020-05-30 15:22:02 · 152 阅读 · 0 评论 -
搜索树
搜索树概念:二叉搜索树又称二叉排序树,它或者是一棵空树**,或者是具有以下性质的二叉树:1. 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值2. 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值3. 它的左右子树也分别为二叉搜索树查找 插入 删除public class BinarySearchTree { public static class Node { int key; Node left; Node right; public Node(int原创 2020-05-29 16:36:38 · 213 阅读 · 0 评论 -
Java中几种基于比较的排序
排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。稳定性,两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。直接插入排序原理:整个区间被分为有序区间和无序区间,每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入。实现: public static void insertSort原创 2020-05-26 16:38:51 · 172 阅读 · 0 评论 -
优先级队列——堆
优先级队列数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(Priority Queue)。PriorityQueue接口:static void TestPriorityQueue(){ // 创建一个空的优先级队列,底层默认容量是11 PriorityQueue<Integer> q1 = new PriorityQueue<>(); // 创建一个空的优先级队列,底层的容量为initialCapacit原创 2020-05-23 16:31:51 · 330 阅读 · 0 评论 -
学习二叉树的建立及其使用
基础概念节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的度为6树的度:一棵树中,最大的节点的度称为树的度; 如上图:树的度为6叶子节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I…等节点为叶节点双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点; 如上图:A是B的父节点孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点; 如上图:B是A的孩子节点根结点:一棵树中,没有双亲结点的结点;如上图:A节点的层次:从根开始定义起,根为第1原创 2020-05-20 21:48:38 · 344 阅读 · 0 评论 -
栈和队列(练习)
括号匹配问题 public static boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); if (ch == '(' || ch == '[' || ch == '{') {原创 2020-05-17 17:17:40 · 378 阅读 · 0 评论 -
栈和队列
栈一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。用一个顺序表实现栈:public class MyStack { public int[] elem; //数组 public int top; //表示当前可以存放数据元素的下标原创 2020-05-16 21:21:44 · 145 阅读 · 0 评论 -
Java中的数据结构——List
List(线性表) public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("hello"); list.add(1,"abc"); System.out.println(list); List<String> list1 = new ArrayList<原创 2020-05-12 21:27:43 · 330 阅读 · 0 评论 -
Java中的字符串简介
认识String创建字符串 // 方式一 String str = "Hello world"; System.out.println(str); // 方式二 String str2 = new String("Hello world"); System.out.println(str2); // 方式三 char[] array = {'a', 'b', 'c'};原创 2020-05-09 16:02:25 · 154 阅读 · 0 评论 -
图书管理系统(Java)
我们运用方法、继承、接口、多态以及包等相关知识,编写一个图书管理系统。首先,我们建立一个TestMain主方法,进行登录操作:public class TestMain { public static User login() { Scanner scanner = new Scanner(System.in); System.out.println(...原创 2020-05-05 20:19:22 · 883 阅读 · 1 评论 -
Java面向对象简介
包包 (package) 是组织类的一种方式,使用包的主要目的是保证类的唯一性。import java.util.Date;//使用 import 语句导入包.public class Test { public static void main(String[] args) { Date date = new Date(); //使用 java....原创 2020-05-01 17:11:18 · 319 阅读 · 0 评论 -
链表练习(Java)
学习完链表之后,需要进行大量练习,从而熟能生巧。首先,我们建立一个基础链表,后续练习都建立在此基础上:class Node { public int data; public Node next; public Node(int data) { this.data = data; this.next = null; }}pub...原创 2020-04-29 19:30:29 · 245 阅读 · 0 评论 -
Java中的链表简介
链表链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。链表的结构非常多样,以下情况组合起来就有8种链表结构:单向(带头/不带头)(循环/非循环),双向(带头/不带头)(循环/非循环),其中无头单向非循环链表和无头双向链表需要重点掌握。无头单向非循环链表结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等。c...原创 2020-04-28 17:56:40 · 316 阅读 · 0 评论 -
Java中的顺序表简介
线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存...原创 2020-04-27 21:52:58 · 259 阅读 · 0 评论 -
Java中的算法效率简介
算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间。时间复杂度一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。实际中我们计算时间复杂度时,我们使用大O的渐进表示法。大O符号(Big...原创 2020-04-22 17:26:33 · 867 阅读 · 0 评论 -
Java中的类和对象简介
基本概念C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。JAVA是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。面向过程:注重的是过程,在整个过程中所涉及的行为,就是功能。面向对象:注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来。类和类的实例化类就是一类对象的统称。对象就是这一类具体化的一...原创 2020-04-21 19:29:24 · 233 阅读 · 0 评论 -
Java中的数组简介
数组基本用法public static void main(String[] args) { // 动态初始化 // 数据类型[] 数组名称 = new 数据类型 [] { 初始化数据 }; int[] arr = new int[]{1, 2, 3}; // 静态初始化 // 数据类型[] 数组名称 = { 初始...原创 2020-04-20 15:54:47 · 133 阅读 · 0 评论 -
Java中的方法简介
方法的基本用法基本语法://方法定义public static 方法返回值 方法名称 ([参数类型 形参 ...]) { 方法体代码; [return 返回值];}//方法调用返回值变量 = 方法名称(实参...);//代码示例:实现一个方法实现两个整数相加class Test { public static void main(String[] arg...原创 2020-04-14 18:01:56 · 274 阅读 · 0 评论 -
Java中的运算符简介
算术运算符// + - * / %//int/int结果还是intint a = 1;int b = 2;System.out.println(a / b);//结果为0,要想得到小数需要double类型//0不能作为除数,会出现编译错误// %表示取余,不仅仅可以对int求模,也能对double求模System.out.println(11.5 % 2.0);...原创 2020-04-10 22:00:57 · 226 阅读 · 0 评论 -
Java中的数据类型简介
整形变量//基本语法格式int 变量名 = 初始值;//代码示例int num = 10; //定义一个整型变量System.out.println(num);注意事项:int表示变量的类型是一个整形变量名是变量的标识,后续都是通过这个名字来使用变量Java中=表示赋值(和数学不一样),意思是给变量设置一个初始值初始化操作是可选的,但是建议创建变量的时候都显示初始化不要...原创 2020-04-09 17:48:06 · 306 阅读 · 0 评论