java的数据结构

发布于:2024-05-19 ⋅ 阅读:(145) ⋅ 点赞:(0)

一、数组,数组具有的特点及表达

1、int[] i = new int[10]

2、固定大小

3、工具类Arrays

4、元素类型相同

5、查找快:根据下标可以快速定位

6、存储空间是连续的

7、修改慢

二、链表,链表的特点及表达

1、List list = new LinkedList();

2、一个元素通过指针连接下一个元素

3、存储空间不需要连续

4、修改很快

5、查找定位慢

三、树、树根朝上,树叶朝下

四、队列、先进先出FIFO

五、栈  先进后出FILO

六、HashMap

1、充分发挥数组和链表的各自优点

2、put(key, value); // 存储数据

3、get(key);// 读取数据

4、key必须重写hashcode方法

5、数组缺省大小是16,put时根据key的hashcode与16取余来确定位置,插入到链表的头部

6、get时也要根据key的hashcode与16取余来确定位置,再根据equals方法来确定链表上的位置

7、数组(哈希桶)扩容规则:阈值缺省是0.75,元素个数达到16x0.75时并且插入的元素位置是非空时,扩容一倍到32

七、集合类分类

1、ArrayList

2、工具类Collections

八、数组与ArrayList互转

1、数组转为list

Integer[] i = new Integer[2];

i[0]=10;

i[1]=20;

List list = Arrays.asList(i);

2、list转为数组

List l = new ArrayList();

l.add(1);

l.add(2);

Integer[] objects = (Integer[]) l.toArray(new Integer[0]);

八、线程是否安全

1、线程安全。多个线程修改同一个对象,不会出现问题

ConcurrentHashMap

Hashtable

Vector

StringBuffer

2、线程不安全 。多个线程修改同一个对象,可能会出现问题

HashMap

ArrayList

StringBuilder

九、加密算法

1、摘要算法

单向,不能解密,不同的字符串加密之后也是不同的。用于密码加密

MD5 SHA-1 SHA-2 SHA-3 SHA-256

2、对称加密算法

加密和解密时所用密码相同,问题:密码的传递很难保证安全,优点:效率高

DES 3DES AES

3、非对称加密算法

加密和解密使用不同的秘钥,分为私钥和公钥,使用私钥加密,必须使用配对的公钥才能解密;使用公钥解密,必须使用配对的私钥才能解密。

优点:安全性高 缺点:慢

RSA HTTPS采用了公钥加密算法


网站公告

今日签到

点亮在社区的每一天
去签到