一、什么是集合?
通俗来讲,集合就是一个放数据的容器,准确的说是放数据对象引用的容器。
二、集合的特点:
1.数据的增删改查
2.有序的,有下标的
3.都继承collection接口
三、有哪些集合?
在Java中的集合有List集合,Set集合,Map集合。
List集合的子类分别为arrayList和linkedList,set集合的子类分别为hashSet和treeSet,Map的子类分别为hashMap和treeMap。
四、集合子类之间的区别是什么?
List集合的子类:arrayList是数组,linkedList是链表。
arrayList的特点:查询、修改快,增加删除慢
linkedList的特点:查询、修改慢,增加删除快。
堆栈的特点:先进后出 例如:struts
队列的特点:先进先出(同进同出) 例如:rabbitmq
Set集合的子类:hashSet为哈希表,treeSet为二叉表。
Map集合的子类:hashMap为哈表,treeMap为二叉表。
List集合的遍历方式:
1、foreach
2、fori
3、iterator
/**
* list集合的遍历方式
* 1.foreach
* 2.fori
* 3.iterator
*
* 容器在遍历的时候不能改变里面的内容
* @author Q
*
*/
public class demo2 {
public static void main(String[] args) {
ArrayList sa = new ArrayList<>();
sa.add("a");
sa.add("b");
sa.add("c");
sa.add("d");
sa.add("e");
for (int i = 0; i < sa.size(); i++) {
System.out.println(sa.get(i));
}
for (Object object : sa) {
System.out.println(object);
}
Iterator sb = sa.iterator();
while(sb.hasNext()) {
System.out.println(sb.next());
}
}
}
利用linkedList做一个堆栈容器:
/**
* 利用linkedList做一个堆栈容器
*
* @author Q
*
*/
public class demo3 {
public static void main(String[] args) {
DuiZhan sa = new DuiZhan(new LinkedList<>());
sa.push("a");
sa.push("b");
sa.push("c");
sa.push("d");
sa.push("e");
System.out.println(sa.pop());
System.out.println(sa.pop());
System.out.println(sa.pop());
System.out.println(sa.pop());
System.out.println(sa.pop());
}
}
/**
* 先进后出的特点
* @author Administrator
*
*/
class DuiZhan {
private LinkedList ll;
public DuiZhan(LinkedList ll) {
this.ll = ll;
}
public void push(Object obj) {
ll.add(obj);
}
public Object pop() {
return ll.removeLast();
}
}