java常用集合类是java开发中必不可少的一部分,它们有着不同的功能和性能特点,让我们来一一了解一下。
首先是ArrayList。ArrayList是一种动态数组类型,其基本功能是添加和删除元素,可以用get方法获取元素,也可以使用iterator遍历整个list。
ArrayListlist = new ArrayList<>(); list.add("hello"); list.add("world"); list.remove("hello"); for (String str : list) { System.out.println(str); }
接下来是LinkedList。LinkedList是一种双向链表类型,可以在任何位置添加和删除元素,但获取元素的效率比ArrayList要低,因为需要从头或尾开始遍历寻找元素。
LinkedListlist = new LinkedList<>(); list.add("hello"); list.add("world"); list.remove("hello"); for (String str : list) { System.out.println(str); }
再来看看HashSet。HashSet是一种基于哈希表实现的Set集合类型,具有快速的添加、删除、查找元素的能力,但是不保证元素的顺序。
HashSetset = new HashSet<>(); set.add("hello"); set.add("world"); set.remove("hello"); for (String str : set) { System.out.println(str); }
最后是TreeSet。TreeSet是一种基于红黑树实现的Set集合类型,可以保证元素按照自然排序或自定义排序规则排列。
TreeSetset = new TreeSet<>(); set.add("hello"); set.add("world"); set.remove("hello"); for (String str : set) { System.out.println(str); }
从性能上来说,ArrayList和LinkedList都是线性的,但ArrayList在添加和删除元素时性能比LinkedList要更好。HashSet和TreeSet的添加、删除、查找元素都是常数级别的,但是在遍历时TreeSet的性能比HashSet要高。