集合框架
- collection 是集合类的上级接口 实现他的集合是List , Set。
- collections 是集合类的帮助类,它提供了一系列针对集合操作的各种帮助的静态方法( 如:排序,搜素,线程安全等)。
collection
|-List
| |-LinkedList
| |-ArrayList
| |-Vector
|-Set
| |-HashSet
| |-TreeSet
|Map
| |-HashMap
List
- 其实现类是ArrayList 和LinkedList 特点:线性存储 ,可以有重复数据, 有序,可以为空。
ArrayList 与LinkedList的区别
- ArrayList 其底层实现是靠数组实现 查询,修改 速度快。
- LinkedList 其底层实现是链表实现,添加,删除 速度快。
- LinkedList比ArrayList更加占内存,因为LinkedList为每一个节点都存储了两个引用,一个指向前一个元素指向后一个元素。
List 遍历
public class Test{
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("Hello");
list.add("World");
//第一种遍历方法使用foreach遍历List
for (String str : list) {
System.out.println(str);
}
//第二种遍历,把链表变为数组相关的内容进行遍历
String[] strArray=new String[list.size()];
list.toArray(strArray);//转数组
for(int i=0;i<strArray.length;i++)
{
System.out.println(strArray[i]);
}
//第三种遍历 使用迭代器进行相关遍历
Iterator<String> ite=list.iterator();
while(ite.hasNext())//判断下一个元素之后有值
{
System.out.println(ite.next());
}
}
}
Set
- 其实现类为HashSet 和TreeSet
- Set 集合特点: 无序,不允许重复,不可为空
遍历Set
//迭代遍历
Set<String> set=new HashSet<>();
Iterator<String> iter=set.iterator();
while(iter.hasNext()){
String str=iter.next();
System.out.println(str);
}
//for循环遍历
for(String str: set){
System.out.println(str);
}
List 和Set 的区别
- Set 集合特点: 无序,不允许重复,List集合特点:有序的,可以重复。
Map
- 特点:无序 存储键值对(Key: value)其健不可为空,不可重复,其值可为空,可重复
遍历map
Map<String, String> map = new HashMap<String, String>();
map.put("1", "v1");
map.put("2", "v2");
map.put("3", "v3");
//第一种
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
}
//使用迭代器
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第三种 常用
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第四种
for (String v : map.values()) {
System.out.println("value= " + v);
}