Hello,今天给各位童鞋们分享的是Java数据结构,赶紧拿出小本子记下来吧
点赞再看,养成习惯,微信搜索lezijie009(备注21,不备注无法通过哦~)全是编程干货
有一线大厂面试完整考点、资料以及免费的学习资料。(乐字节)
// 数组初始化
int[] a; // 没有new即没有申请内存空间
int[] a = new int[2]; // 数组长度为2,且元素都为0
int[] a = new int[]{ 1, 2, 3 }; // 逐个初始化
int[] a = { 1, 2, 3 };
在Java1.2以后Java推出了JCF
JCF主要是实现类:
JCF主要的算法类
List主要实现:
遍历性能测试:
运行结果:
迭代器遍历用时:6505100纳秒索引遍历用时:4729700纳秒for-earch遍历用时:8569100纳秒
Process finished with exit code 0
遍历性能测试
运行结果:
迭代器遍历用时:6294100纳秒位置索引用时:3135172200纳秒for-earch遍历用时:6656100纳秒
public static void main(String[] args) {
Vector<Integer> vector = new Vector<>();
vector.add(1);
vector.add(2);
vector.add(3);
vector.add(4);
vector.add(1,3);
System.out.println(vector.size());
遍历性能测试
运行结果:
迭代器遍历用时:7155600纳秒位置索引用时:6508500纳秒for-earch遍历用时:6303000纳秒
运行结果:
HashSet size is 6[null, 6, 7, 8, 9, 10][null, 7, 8, 9, 10]
遍历性能测试:
运行结果:
迭代器遍历:1592900纳秒for-earch遍历:1032800纳秒
public static void main(String[] args) {
LinkedHashSet<Integer> integers = new LinkedHashSet<>();
integers.add(null);
integers.add(1);
integers.add(2);
integers.add(3);
// 以下重复元素插入无效
integers.add(3);
integers.add(null);
System.out.println(integers.size()); // 4
遍历性能测试:
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(100);
treeSet.add(10);
treeSet.add(1);
treeSet.add(12);
treeSet.add(13);
// 默认从小到大排序,输出为[1, 10, 12, 13, 100]
System.out.println(treeSet);
遍历性能测试:
运行结果:
迭代器遍历:2478900纳秒for-earch遍历:1279300纳秒
HashSet、LinkedHashSet和TreeSet
TreeSet判定元素重复的原则
以size作为元素重复的判定依据
注意:HashSet元素判定规则只与hashCode、equals方法有关,和compareTo方法无关
// 如果a>0,则obj1>obj2
// 如果a==0,则obj1==obj2
// 如果a<0,则obj1<obj2
int a = obj1.compareTo(obj2);
Java中的Map
public static void main(String[] args) {
Hashtable<Integer, String> hashtable = new Hashtable<>();
hashtable.put(1, "value 1");
hashtable.put(2, "value 2");
hashtable.put(3, "value 3");
// 输出{3=value 3, 2=value 2, 1=value 1}
System.out.println(hashtable);
遍历性能测试:
好啦,今天的文章就到这里了,希望能够帮助到屏幕前迷茫的你们
不管你是新手还是老手都能有帮助的资料,私信乐字节免费领取
想学习更多的编程知识: