博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DAY03-数据结构
阅读量:3916 次
发布时间:2019-05-23

本文共 4289 字,大约阅读时间需要 14 分钟。

老师说今天大家上课状态不好,唉明天就是最后一天了,好舍不得这个老师。今天老师讲了算法结构。话不多说,直接上笔记。

review1
review2

数据结构~

数组 => 一组[类型相同]而且[存储空间连续]的数据 => 一组数据数组最大的特点:[存储空间连续]ArrayList => 底层基于数组实现的 有序 不唯一的单值类型集合

数组和链表结构的区别

链表 => LinkedList => 底层基于链表实现的 有序 不唯一的单值类型集合双向循环链表	双向:每一个元素记录下一个元素的同时		还要记录自己的上一个元素是谁	循环:首尾相连添加:形成双向循环链表 添加元素时要尊重4句话	1.新元素的下一个指向header	2.新元素的上一个指向header的上一个	3.新元素的下一个的上一个指向新元素本身	4.新元素的上一个的下一个指向新元素本身(C)H(A)    (H)A(B)    (A)B(C)   (B)C(H)删除:要尊重两句话	加入要删除的元素是X 则	X的上一个的下一个 指向X的下一个	X的下一个的上一个 指向X的上一个(C)H(A)    (H)A(C)   { (A)B(C) }  (A)C(H)	B的上一个的下一个 指向B的下一个 finish	B的下一个的上一个 指向B的上一个	-------------------------------	(A)H(A)  (H)A(H)  	 3	 4	  2	  1	(B)H(A)  (H)A(B)  (A)B(H)	3             4    2   1	(C)H(A)  (H)A(B)  (A)B(C)  (B)C(H)	3                       4   2   1	=================================	栈 => LIFO => Last In First Out => 后进先出	1> 电梯	2> 弹夹	3> 丁一的故事~	push() 压栈     pop() 弹栈	Stack -> 使用数组模拟栈结构的实现~ 		同样有序不唯一的单值类型集合	=====================================		 => 先进先出		=========================================	哈希表 = 散列表 = Hashtable哈希 => hash 	散列:将一大组数据 分散排列成若干小组		26  13  37  77  86  95		[0]	[1]	77	37	13	[2]	86	26	[3]	95							38			%4 => &3HashSet => 底层基于哈希表实现的无序 但是唯一的集合======================数组	=> ArrayList链表	=> LinkedList栈	=> Stack队列	=> Queue哈希表	=> HashSet二叉树	=> TreeSet

James Gosling => Java之父

James Gosling

Joshua Bloch => Java之母

Joshua Bloch
ArrayList & LinkedList 有什么区别

ArrayList底层基于数组实现

存储空间是连续的 查找遍历效率较高 但是添加删除元素效率较低

LinkedList 底层基于链表实现

底层存储空间并不连续 查找遍历效率较低 但是添加删除效率极高

单词判断是否正确的工具

import java.util.*;//用Sun公司提供给我们的哈希表实现import java.io.*;//Input Output 读取文件内容import javax.swing.*;//轻量级组件包public class Gogo{	public static void main(String[] args)throws Exception{		HashSet
set = new HashSet<>(16384,10.0F); / FileReader fr = new FileReader("EtoakWords.txt");//针头 BufferedReader br = new BufferedReader(fr);//针管 String str; while((str = br.readLine())!=null){ set.add(str.toLowerCase());//添加到哈希表当中 } br.close(); / while(true){ String word = JOptionPane.showInputDialog(null,"请输入您要检查的单词"); word = word.toLowerCase(); if(word == null || "88".equals(word) || "3166".equals(word)){ JOptionPane.showMessageDialog(null,"感谢您的使用 欢迎再次使用~"); break; } if(set.contains(word)){ JOptionPane.showMessageDialog(null,"恭喜您~ 拼写正确"); }else{ JOptionPane.showMessageDialog(null,"很抱歉~ 拼写错误"); } } }}

TestHashSet//底层默认分成16组,必须底层分成2^n

import java.util.*;public class TestHashSet{	public static void main(String[] args){		HashSet
set = new HashSet<>(8); set.add(33); set.add(33); set.add(33); set.add(33); set.add(55); set.add(77); set.add(44); System.out.println(set); //[33, 44, 77, 55] }}

TestArrayList

import java.util.*;//utilpublic class TestArrayList{	public static void main(String[] args){		ArrayList
list = new ArrayList
(); list.add(14); list.add(53); list.add(26); list.add(55); System.out.println(list); //[14, 53, 26, 55] }}

TestLinkedList

import java.util.*;public class TestLinkedList{	public static void main(String[] args){		LinkedList
list = new LinkedList
(); list.add("Banana"); list.add("Orange"); list.add("Apple"); System.out.println(list); //[Banana, Orange, Apple] }}

TestStack

import java.util.*;public class TestStack{	public static void main(String[] args){		Stack
stk = new Stack<>(); stk.push("香蕉"); stk.push("橘子"); stk.push("西瓜"); System.out.println(stk.pop()); System.out.println(stk.pop()); System.out.println(stk.pop()); /*西瓜 橘子 香蕉*/ }}

TestTreeSet1

import java.util.*;public class TestTreeSet{	public static void main(String[] args){		TreeSet
set = new TreeSet<>(); set.add("Jay"); set.add("Andy"); set.add("Jacky"); set.add("Aaron"); set.add("Leon"); System.out.println(set); //[Aaron, Andy, Jacky, Jay, Leon] }}

TestTreeSet2

import java.util.*;public class TestTreeSet{	public static void main(String[] args){		TreeSet
set = new TreeSet<>(); set.add(11); set.add(53); set.add(49); set.add(22); set.add(86); set.add(57); System.out.println(set); //[11, 22, 49, 53, 57, 86] }}

%x x必须是2^n 才满足 %x = &(x - 1)

Viva
i18n //中间有18个省略
Internationalization => 国际化

Java四大名著

Java编程语言(第三版)----James Gosling(Java之父)

Java编程思想(第4版)-----Bruce Eckel

JAVA 2核心技术 卷I:基础知识(原书第8版)----Cay Horstmann

JAVA 2核心技术 卷II:高级特性(原书第8版)----Cay Horstmann

Effective Java中文版--------Joshua Bloch

你可能感兴趣的文章
.NET Core + K8S + Loki 玩转日志聚合
查看>>
ASP.NET Core中的分布式缓存
查看>>
在ASP.NET Core中创建自定义端点可视化图
查看>>
继续分享 5 个实用的 vs 调试技巧
查看>>
五年了,别再把务虚会开 “虚” 了
查看>>
一文看懂"async"和“await”关键词是如何简化了C#中多线程的开发过程
查看>>
每天都在支付,你真的了解信息流和资金流?
查看>>
.Net Core 自定义配置源从配置中心读取配置
查看>>
基于.NetCore3.1系列 —— 日志记录之日志配置揭秘
查看>>
设计模式之享元模式
查看>>
单例模式最佳实践
查看>>
.NET Core + Spring Cloud:服务注册与发现
查看>>
今天你内卷了吗?
查看>>
设计模式之代理模式
查看>>
在 MySQL 中使用码农很忙 IP 地址数据库
查看>>
结构型设计模式总结
查看>>
dotNET:怎样处理程序中的异常(实战篇)?
查看>>
What is 测试金字塔?
查看>>
api接口返回动态的json格式?我太难了,尝试一下 linq to json
查看>>
.Net Core HttpClient处理响应压缩
查看>>