集合类
Collection接口
常用方法
方法 | 功能描述 |
---|---|
add(object a) | 将指定对象添加到该集合中 |
remove(object a) | 将指定对象从集合中移除 |
isEmpty | 返回boolean值,判断集合是否为空 |
iterator() | 返回在此Collection的元素上进行迭代的迭代器,用于遍历集合中的对象 |
size() | 返回int型值,判断该集合中的个数 |
List集合 (继承了Collection中的所有方法)
补充两个重要方法
方法 | 功能描述 |
---|---|
get(int index) | 获取指定索引位置的元素 |
set(int index,Object obj) | 将集合中指定索引位置的对象修改为指定的对象 |
List接口的实现类 (不能直接实例化)
(1)ArrayList:实现了可变的数组,允许保存所有元素,包括null,可根据索引快速访问元素但是插入删除对象较慢
(2)LinkedList:采用链表结构保存对象,便于向集合中插入和删除对象
实例化集合:
List<类型> list=new ArrayList<>();
List<类型> list=new LinkedList<>();
Iterator迭代器
方法 | 功能描述 |
---|---|
hasNext() | 如果仍有元素可迭代,则返回true |
next() | 返回迭代的下一个元素 |
remove() | 从迭代器指向的Collection中移除迭代器返回最后一个元素 |
创建迭代器
Collection<String> list=new ArrayList<>();
Iterator<String> it=list.iterator();
set集合 (不包含重复元素,继承了Collection接口)
set接口类的实现
(1)HashSet:不允许有重复元素,允许保存null
import java.util.*;
public class HashSetTest {
public static void main(String[] args) {
TreeSet set=new TreeSet();
set.add("a");
set.add("c");
set.add("d");
set.add("b");
Iterator<String> it=set.iterator();
while(it.hasNext())
{
String str=(String) it.next();
System.out.println(str);
}
}
}
(2)TreeSet:实现的Set集合在遍历集合时按照自然顺序递增的排序,也可指定排序的规则,不能保存null
TreeSet常用方法
方法 | 功能描述 |
---|---|
first() | 返回此Set中当前第一个(最低)元素 |
last() | 返回此Set中当前最后一个(最高)元素 |
comparator() | 返回对此Set中的元素进行排序的比较器,如果此Set使用自然顺序,则返回null |
headSet(E toElement) | 返回一个新的集合,新集合是toElement(不包含)之前的所有对象 |
subSet(A formElement,B formElement) | 返回一个新的集合,A~B的所有集合 |
tailSet(E formElement) | 返回一个新的集合,新集合包含formElement(包含)之后的所有对象 |
Map集合·(一一对应关系)
没有继承Collection接口,提供的是key到value的映射,不能包含相同的key
常用方法
方法 | 功能描述 |
---|---|
put(Object key,Object value) | 向集合中添加指定的key与value的映射关系 |
get(Object key) | 如果存在指定的key对象,则返回该对象的对应值,否则返回null |
keySet() | 返回该集合中的所有key对象形成的Set集合 |
values() | 返回该集合中的所有值对象形成的Collection集合 |
Map接口的实现类
(1)HashMap:提供所有可选的映射操作,并允许使用null值和null键,但必须保证键的唯一性
import java.util.*;
public class HashMapTest {
public static void main(String[] args) {
Map<String,String> map=new HashMap<>();
map.put("ISBN-978654","Java从入门到精通");
map.put("ISBN-978631","Android从入门到精通");
Set<String> set=map.keySet();
Iterator<String> it=set.iterator();
System.out.println("key值:");
while(it.hasNext())
{
System.out.print(it.next()+"\t");
}
Collection<String> coll=map.values();
it=coll.iterator();
System.out.println("\nvalues值:");
while(it.hasNext())
{
System.out.print(it.next()+"\t");
}
}
}
(2)TreeMap:集合中的映射关系具有一定的顺序,但在添加、删除和定位映射关系时略差,不允许键对象时null
创建Map实例
Map<String,String> map=new HashMap<>();
集合的使用场合
(1)List集合关注的是索引,其元素使按顺序存放的,例:一个班的学生成绩
(2)Set集合关注唯一性,它的值不允许重复,例:一个班学生的学号
(3)Map集合关注的使唯一的标识符(KEY),它将唯一的键映射到某个元素,例:每个班学生与学号的映射