数据结构算法(排序)

来源:互联网 发布:php密码破解 编辑:程序博客网 时间:2024/05/17 04:30

Day07:再看一下通配符
Day08:
学习Java都要学什么?
JDk—->API—–>各种类
Java中的规范:
设计模式:解决问题的套路

算法(排序)

数据结构:就是存储数据的方式
堆栈结构:只有一个进出口的结构:
先进后出(后进先出)
FILO

队列结构:
特点:先进的先出(FIFO)

数组结构:

特点:由于数组结构有下标,我们就可以通过下标快速定位某一个元素
优点: 查找速度快,增删慢
缺点`:长度一定不可变.

链表结构:元素不叫元素,叫节点;
每个节点有两部分:
数值加存储的数值的地址
特点:
缺点:
查找速度慢
优点:
增删速度快

双向链表:
上元素地址 值 下元素地址

哈希表结构:
特点:查找快增删慢

=================================Collection两个子接口:
list:
特点:1.有序(不是指元素是1,2,3或者a,b,c),而是怎么存的怎么取,存入和取出的顺序一致

2.有下标

3.List中的元素可以重复

特有方法:
增:add(E e),add(int index,E e)
删:remove(Object obj);remove(int index)
改:set(int index,E e);

查:size(),get(int index)
List接口那些实现类?
ArrayList:底层采用数组结构,查找快,增删快
LinkedList:底层采用链表结构,查找慢,增删快
特有方法:大量的首尾操作的方法
第一组:addFirst(E e); addLast(E e)
第二组:
E getFirst(); E getLast();
第三组:E removeFirst(); E remove Last();
第四组:
E pop();(弹栈)思想不同,就是删除 功能与removeFirst相同

push(E e);(压栈):添加,功能与addFirst一样

Set:
特点:
1.无序:存取顺序不一致(LinkedHashSet与TreeSet除外)
2.无下标
3.不可重复
特有方法:

实现类:
HashSet:底层采用哈希表结构(数组+链表)查找快,增删快
特有方法:基本无
LinkHashSet
:
TreeSet:链表+其他结构

Vector:被ArrayList取代

哈希表:
对象的哈希值(我们以前说的地址值是不是实际的地址值,而是哈希值的16进制格式)
是一个对象的数字表示
对象的字符串表示:
int a=对象.hashCode();

对象的toString方法的返回值:包名.类名@地址值

HashSet的底层是通过什么方式判段的元素是否重复的:

1.先判断哈希值是否相同,再判断内容是否相同.都相同则不添

使用HashSet存储自定义元素时:
要保证自定义元素对象的唯一性,要重写hashCode和equals方法
ArrayList的contains
1.ArrayList元素可以重复

=================================总结:
1.目前为止,我们学的集合是不同步的,不安全的.
集合中可以存储null元素的

原创粉丝点击