1.什么是集合?
用来存放一组数据的数据结构,可以把集合理解为存放数据的容器
2.为什么要有集合?
首先说数组的缺点:
1)长度固定不可变。
2)访问方式单一,只能通过下标访问。
3)增删数据繁琐。
3.那么集合和数组有什么区别呢?
1)数组可以储存基本数据类型,又可以储存引用数据类型,基本类型储存的是值,引用类型储存的是地址值。
集合只能储存引用数据类型,要想储存基本数据类型,会自动封装成包装类
2)数组的程度是固定不变的,集合的长度是可变的,随着元素的增加自动增长,
4.集合的继承结构
5.Connection的方法
add()添加数据(在尾部)
get(int i) 用小标获取数据
remove(int i) 用小标删除数据,返回被删除的数据
remove(数据) 删除第一个相等的数据,如果找到并删除,返回true,如果找不到返回false
Size() 集合中元素的数量
Iterator() 辅助创建迭代器的方法
6.集合的遍历
在集合中可以用iterator 来遍历集合,迭代器只能通过集合调用iterator方法来创建对象,因为iterator是接口不能自己创建对象。
Iterator中的方法
next() 取出集合中的下一个元素,比如集合有10,15,20三个元素,第一次去出10第二次取出15,第三次取出20
hasNexr(),判断是否有下一个元素进行迭代,如果有返回true
代码示例
import java.util.ArrayList;
import java.util.Iterator;
public class iteratorTest {
public static void main(String[] args) {
ArrayList array = new ArrayList();
array.add(10);
array.add(15);
array.add(20);
Iterator it = array.iterator();
while(it.hasNext()) {
Integer n = it.next();
System.out.println(n);
}
}
}
7.ArrayList和LinkedList的结构区别
ArrayList底层封装的是数组,访问效率高,但是增删数据的效率低,内部数组初始容量为10,存满后新数组以1.5倍的容量扩容
LinedList;采用双向链表结构存储对象,优点是便于删除和插入对象,但是访问效率低,首尾访问效率高。
8.Map集合Map<K,V>
Map集合是由将键到值对组成的对象,一个键K对应一个值V ,键不能重复,值可以重复。
Map中的方法
1)put(key,value)将一对键值放入Map中。
2)get(key) 根据键获取对应的值
HashMap<K,V>是Map的实现类,特点是插入的顺序和真实顺序不一致,是无序的。
HashMap<Integer, String> hashMap = new HashMap<>();
hashMap.put(1, “刘备”);
hashMap.put(2, “关羽”);
hashMap.put(3, “张飞”);
//集合的第一种遍历方式,通过hashMap的keySet方法遍历key,通过ke取出value
for (Integer key :hashMap.keySet()) {
System.out.println(key+"\t"+hashMap.get(key));
}
//第二种遍历方式,通过hashMap的entrySet使用迭代器遍历key和value
Set<Entry<Integer, String>> entrySet = hashMap.entrySet();
Iterator<Entry<Integer, String>> iterator = entrySet.iterator();
while(iterator.hasNext()) {
Entry<Integer, String> next = iterator.next();
System.out.println(next.getKey()+"\t"+next.getValue());
}