集合框架我们可以理解为是用来在内存中存放一组对象的容器。Java中的集合框架是线性的数据结构,但是这些线性的数据结构分为两类:一类是物理线性,另一类逻辑线性
小插曲||数组与集合的区别:
1.数组用于存储统一类型的数据,有固定的长度
2.集合可以存储不同类型的数据,没有固定的大小
Collection是java.util下的接口,它是各种集合结构的父接口。其下对应的子接口是List,Set,Map。其中List继承父类Collection,而Set和Map不是。而且,List是有序可重复的,Set是无序且不重复,Map是映射。
List是有序列的一种集合,也就是说集合里面的对象在放入的时候就形成了特定的逻辑顺序。集合中的每一个对象都有一个惟一的顺序位置,通过它们的下标表示出来因此遍历的时候可以按照它们的下标顺序逐一访问。也可以用迭代方式遍历。在List集合中,我们常用的实现类有:ArrayList、LinkedList、Vector
其中 ArrayList和Vector的区别:
1.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的。
2.数据增长:当需要增长时,Vector默认增长为原来一倍,而ArrayList却是原来的一半。
<span style="font-size:18px;">//测试List集合的方法
public void testList(){
//创建一个List容器
ArrayList list = new ArrayList();
list.add(10);
list.add(1000);
list.add("abc");
list.add(10);
System.out.println("list容器的大小:"+list.size());
//遍历list
System.out.println("遍历list中所有的元素");
printList(list);
System.out.println(list);//换行
}</span>
List集合的遍历
<span style="font-size:18px;">private void printList(ArrayList list) {
//遍历List的方法
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+" ");
}
}</span>
<span style="font-size:18px;">Set是最简单的一种集合,它里面的对象是无序排列的,对象没有特定的排列方式。Set里面的对象也是互异的,即Set集合中没有相同的元素 。Set集合中的对象是无序的,所以不能像数组那样根据下标遍历,可以通过迭代方式遍历。在Set集合中,我们常用的实现类有:HashSet、TreeSet</span>
<span style="font-size:18px;">//测试Set集合的方法
public void testSet(){
//创建一个set容器
HashSet set=new HashSet();
set.add(10);
set.add(1000);
set.add("abc");
set.add(10);
System.out.println("set容器的大小:"+set.size());
//遍历set
System.out.println("遍历set中所有的元素");
printSet(set);
//换行
System.out.println();
}</span>
Set集合的遍历
<span style="font-size:18px;">private void printSet(HashSet set) {
//遍历set 获取set集合的迭代器对象
Iterator it=set.iterator();
while(it.hasNext()){
//取出元素
System.out.print(it.next()+" ");
}
}</span>
Iterator是获取集合中元素的过程,实际上帮助获取集合中的元素
Map与Set,List有点不同,它可以存放两种对象,并且这两种对象是一一对应的。一种对象称为key,一种称为value,其中key不能重复,但value能重复。由于存放的对象数量与上面两种不同,所以在选择使用Map时是很方便的
遍历Map时可以先用迭代器得到key,再通过key与value的对应得到value。在Map集合中,我们常用的实现类有:HashMap、HashTable、TreeMa
//测试Map集合的方法
<span style="font-size:18px;"> public void testMap(){
//创建一个Map容器
HashMap map=new HashMap();
map.put(1, "张三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "aaa");
//覆盖之前的元素
// map.put("aaaa", 1.0f);
System.out.println("map容器的大小:"+map.size());
System.out.println(map);
System.out.println(map.get(3));
System.out.println("遍历map中的所有元素:");
printMap(map);
}</span>
<span style="font-size:18px;">Map集合的遍历</span>
<span style="font-size:18px;">private void printMap(HashMap map) {
//遍历map 获取map中的所有key:保存在一个Set集合中
Set set=map.keySet();
//遍历set
Iterator it=set.iterator();
while(it.hasNext()){
Object key=it.next();//获取到每一个key
Object value=map.get(key);
//获取到每一个key对应的value值
System.out.println("学号:"+key+"姓名:"+value);
}
</span>