JAVA集合学习

JAVA中有几种常用的集合类。分别是List,Set,Map等


提示:Eclipse中自动导入包的快捷键  Ctrl+Shift+O

一、List类

父接口:该类是Collection集合接口的子接口。

特点:List类是有序的,可以有重复的元素。

分类:它也有两个子接口,分别是ArrayList(动态数组)、LinkedList(链表、队列、堆栈)

常用方法:

1.构造方法。eg:ArrayList<Integer> al = new ArrayList<Integer>();//Integer可用其他类替换。

2.添加元素add(Object)         addAll(object集合).eg:al.add(3);

3.删除元素remove(Object)  removeAll(object集合).eg:al.remove(4);

4.获取元素get(index)eg:get(0);

等其他的方法;


二、Set类

父接口:Coleection

特点:无序,不可重复

子接口:HashSet类,以哈希表的形式存放元素,插入删除速度很快;TreeSet类,

方法:构造方法,Set是抽象类,在构造新对象时需要申明为HashSet   eg:Set<String> set = new HashSet<String>();

add,remove,...遍历时可用:eg:

Set<String> set = new HashSet<String>();
for(String s : set){
  //TODO

}

添加元素:

set.add("English");
删除元素:

<span style="font-size:18px;"><strong>set.remove("HanYu")</strong></span>

等等其他方法。

三、Map类

子接口:HashMap类,TreeMap


四、Table类

子接口:HashTable类



五、集合适用场景

对于查找和删除较为频繁,且元素数量较多的应用,Set或Map是更好的选择;
ArrayList适用于通过为位置来读取元素的场景;
LinkedList 适用于要头尾操作或插入指定位置的场景;
Vector 适用于要线程安全的ArrayList的场景;
Stack 适用于线程安全的LIFO场景;
HashSet 适用于对排序没有要求的非重复元素的存放;
TreeSet 适用于要排序的非重复元素的存放;
HashMap 适用于大部分key-value的存取场景;
TreeMap 适用于需排序存放的key-value场景。


原文地址:https://www.cnblogs.com/wenbaoli/p/5655750.html