1、Collection接口
通常遍历集合,都是通过迭代器(Iterator)实现。注意:Iterator的next()方法返回的是Object!
Collection接口常用的方法:
add(E e):将指定的对象添加到集合中。
remove(Object o):将指定对象从集合中删除。
isEmpty():返回boolean值,判断当前集合是否为空。
iterator():返回在此Collection的元素上进行迭代的迭代器。用于遍历集合中的对象。
size():返回int型值,获取该集合中元素的个数。
示例代码:
package test;
import java.util.*;
public class hello {
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
Iterator<String> it = list.iterator();
while(it.hasNext()){
String str = (String)it.next();
System.out.println(str);
}
}
}
运行结果:
a
b
c
d
2、List集合
List接口继承Collection接口,此外还定义了一下两个非常重要的方法:
get(int index):获取指定索引位置的元素
set(int index,Object obj):将集合中指定索引位置的对象修改为指定对象
常用实现类:ArrayList与LinkedList.
使用List集合时通常声明为List类型,可通过不同的实现类来实例化集合。
List<E> list = new ArrayList<>();
List<E> list = new LinkedList<>();
注:E为合法的java数据类型。
示例代码:
package test;
import java.util.*;
public class hello {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
int i = (int)(Math.random()*(list.size()-1));
System.out.println("随机获取的数组元素:"+list.get(i));
list.remove(2);
System.out.println("将索引2的元素移除后,剩余数组元素是:");
for (int j = 0; j < list.size(); j++) {
System.out.println(list.get(j));
}
/* 第二种方法:创建一个迭代器进行显示
Iterator<String> it = list.iterator();
while(it.hasNext()){
String str = (String)it.next();
System.out.println(str);
}
*/
}
}
运行结果:
随机获取的数组元素:b
将索引2的元素移除后,剩余数组元素是:
a
b
3、Set集合
Set集合中对象不按特定的顺序进行排列,但不能包含重复对象!
继承Collection接口,实现的类有:HashSet与TreeSet。
新增的方法:
first():返回第一个元素(最低)。
last():返回最后一个元素(最高)。
comparator():返回元素进行排序的比较器。如果set采用自然排序则返回NULL。
headSet(E toElement):返回一个新的Set集合,新集合包含toElement(不包含)之前的所有对象。
subSet(E toElement,E toElement):返回一个新的Set集合,包含fromElement(包含)对象与toElement(不包含)之间所有的对象。
tailSet(E fromElemnt):返回一个新的Set集合,新集合包含对象fromElement(包含)滞后的所有对象。
技巧:如果指定参数位于新集合的起始位置,则包含该对象,如果是终止位置,不包含该对象。
4、Map集合
Map集合没有继承Collection接口,其提供的是key到value的映射。Map中不能包含相同的key,每个key只能映射一个value。
Map集合中允许对象是NULL,而没有个数限制。
常用的方法:
put(K key,V value):向集合中添加key与value的映射关系。
containsKey(Object key):如果此映射包含key的映射关系,则返回true.
containsValue(Object value):如果此映射将一个或多个key映射到指定值,则返回true.
get(Object key):如果存在指定的key,则返回该值,否则返回NULL。
keySet():返回该集合中所有key对象形成的Set集合。
values():返回该集合中所有value对象所形成的Collection集合。
示例代码:
package test;
import java.util.*;
public class hello {
public static void main(String[] args) {
Map<String,String> map = new HashMap<>();
map.put("01","李同学");
map.put("02","张同学");
map.put("03","王同学");
Set<String> set = map.keySet(); //获取key的Set集合
Iterator<String> it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
Collection<String> value = map.values();//获取value的Collection集合。
it = value.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
运行结果:
01
02
03
李同学
张同学
王同学