⑴集合的作用
①在类的内部,对数据进行组织(针对作用与意义一样的属性,将他们放到一个集合中);
②简单而快速的搜索大数量的条目;
③有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或删除有关元素;
④有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型。
⑵与数组相比
①数组的长度固定,集合长度可变;
②数组只能通过下标访问元素,下标为整型,类型固定,而有的集合可以通过任意类型(下标)查找所映射的具体象。
1..List接口及其实现类——ArrayList
List是元素有序并且可以重复的集合,被称为序列;可以精确的控制每个元素的插入位置,或删除某个位置元素;ArrayList是数组序列,底层是由数组实现的。
例:List<String> ss = Arrays.asList("a","b","c","d");
for(String s : ss){
System.out.println(s);
}
2..Set接口及其实现类——HashSet
Set是元素无序并且不可以重复的集合,被称作集。
HashSet—哈希集,是Set的一个重要实现类。
- Set的使用
HashSet没有像List一样的set()方法来用指定元素替换指定位置的元素,因为Set集合的元素是无序的。同样也不能用访问索引的方式来获取指定位置的元素。
例:Set<String> set = new HashSet<String>();
set.add("asds");
set.add("bsdf");
set.add("cfg");
set.add("esdf");
set.add("gffgh");
for(String str : set){
System.out.println(str);
}
3..Map接口
Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,key和value可以是任意类型的对象,能够实现根据key快速查找value。
Map中的键值对以Entry类型的对象实例形式存在。
键(key值)不可重复,value值可以。
每个键最多只能映射到一个值,一个值可以对应多个键。
Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法。Entry类是Map的一个内部类。
Map支持泛型,形式如:Map<Key值类型,V值类型>
- HashMap类
HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现。
HashMap中的Entry对象是无序排列的。
Key值和value值都可以为null,但是一个HashMap只能有一个key值为null的映射。
例:Map<Integer,String> map = new HashMap<Integer,String>();
map.put(28, "鹿晗");
map.put(20, "杨一杏");
map.put(35, "陈伟霆");
map.put(46, "易烊千玺");
Set<Integer> keys = map.keySet();
for(int i : keys){
System.out.println(i + "=====" + map.get(i));
}