java集合类(list,set,map)
集合按照存储结构可以分为两大类,分别是单列集合(Collection)和双列集合(Map)
List接口
List的特点是元素有序,元素可重复;
ArrayList
案例代码
import java.util.*;
public class ArrayList666 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");
System.out.println("集合的长度:" + list.size());
System.out.println("第2个元素是:" + list.get(1));
System.out.println();
Iterator<String> it = list.iterator();
while (it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
System.out.println();
for (String string : list) {
System.out.println(string);
}
}
}
效果
LinkedList
案例代码
import java.util.*;
public class LinkedList666 {
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<String>();
link.add("张三");
link.add("李四");
link.add("王五");
link.add("赵六");
System.out.println(link.toString());
link.add(3, "Student");
link.addFirst("First");
System.out.println(link);
System.out.println(link.getFirst());
link.remove(3);
link.removeFirst();
System.out.println(link);
System.out.println();
Iterator<String> it = link.iterator();
while (it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
System.out.println();
for (String string : link) {
System.out.println(string);
}
}
}
效果
list总结
由于ArrayList集合的底层使用一个数组保存元素,在增加或删除指定位置的元素时,会导致创建新的数组,极大地降低了效率,因此该集合不适合进行大量的增删操作。但这种数组的结构允许程序通过索引的方式访问元素,因此ArrayList集合的优势是查找元素效率高。
Set接口
Set的特点是元素无序,而且不可重复。 与List接口不同的是,Set接口中的元素无序,并且都会以某种规则保证存入的元素不会出现重复。
HashSet
案例代码
import java.util.*;
public class HashSet666 {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("张三");
set.add("李四");
set.add("王五");
set.add("李四");
Iterator<String> it = set.iterator();
while (it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
for (String string : set) {
System.out.println(string);
}
}
}
效果
TreeSet
案例代码
import java.util.*;
public class TreeSet666 {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<Integer>();
set.add(1);
set.add(34);
set.add(5);
Iterator<Integer> it = set.iterator();
while (it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
for (int string : set) {
System.out.println(string);
}
}
}
效果
set总结
HashSet是根据对象的哈希值确定元素在集合中的存储位置,因此具有良好的存取和查找性能。TreeSet则是以二叉树的方式存储元素,它可以实现对集合中的元素进行排序
Map接口
Map:双列集合类的根接口,用于存储具有键(Key)、值(Value)映射关系的元素,每个元素都包含一对键值,在使用Map集合时可以通过指定的Key找到对应的Value
HashMap
案例代码
import java.util.*;
public class HashMap666 {
public static void main(String[] args) {
HashMap<Integer,String> map = new HashMap<Integer, String>();
map.put(1, "张三");
map.put(33, "李四");
map.put(2, "王五");
Set<Integer> keySet = map.keySet();
Iterator<Integer> it = keySet.iterator();
while (it.hasNext()) {
Object key = it.next();
Object value = map.get(key);
System.out.println(key + ":" + value);
}
}
}
效果
TreeMap
案例代码
import java.util.*;
public class TreeMap666 {
public static void main(String[] args) {
TreeMap<Integer, String> map = new TreeMap<Integer, String>();
map.put(1, "张三");
map.put(32, "李四");
map.put(2, "王五");
Set<Integer> keySet = map.keySet();
Iterator<Integer> it = keySet.iterator();
while (it.hasNext()) {
Object key = it.next();
Object value = map.get(key);
System.out.println(key + ":" + value);
}
for (Integer integer : keySet) {
System.out.println(integer + ":" + map.get(integer));
}
}
}
效果
map总结
HashMap是根据对象的哈希值确定元素在集合中的存储位置,因此具有良好的存取和查找性能。TreeMap则是以二叉树的方式存储元素,它可以实现对集合中的元素进行排序
|