java集合框架分为两大类接口:
Collection Map
其中Collection又有二个子接口:List和Set
共同点:都是集合接口,都可以用来存储很多对象.
区别:
1)Collection接口存储一组不唯一(允许重复).无序的对象,
2)Set接口继承Collection接口,存储一组唯一(不允许重复).无序的对象.
3)List接口继承Collection接口,存储一组不唯一(允许重复).无序(以元素插入的次序来放置元素,不会重新排列)的对象.
4)Map接口存储一组成对的键-值对象,提供key(键)到value(值)的映射.
Map中的key不要求有序,不允许重复.value同样不要求有序,允许重复
Collection接口:
Set接口:
HashSet集合类
LinkedHashSet集合类
TreeSet集合类
List接口:
ArrayList集合类
LinkedList集合类
Vector集合类
Map接口:
HashMap集合类
TreeMap集合类
ArrayList集合类的用法
优点:
1)可以灵活的插入元素
1)可以灵活的删除元素
各种常用的方法:
1)boolean add(Object o) 在列表末尾顺序添加元素,起始索引位置从0开始
void add(int index ,Object o) 在指定位置添加元素
int size() 返回列表中的元素个数
Object get(int index) 返回指定索引位置的元素
boolean contains(Object o) 判断表中是否存在指定元素
boolean remove(Object o)从列表中删除元素
Object remove(int index) 从列表中删除指定位置的元素,起始索引位置从0开始
import java.util.*;
public class Test01 {
public static void main(String[] args) {
Dog dog1=new Dog("偶偶","雪纳瑞");
Dog dog2=new Dog("菲菲","藏獒");
Dog dog3=new Dog("美美","布拉不多");
Dog dog4=new Dog("fei","布拉不多");
List<Dog> list=new ArrayList<Dog>();
list.add(dog1);
//void add(int index ,Object o) 在指定位置添加元素
list.add(1,dog2);//下标从0开始
list.add(dog3);
list.add(dog4);
//int size() 返回列表中的元素个数 size()的用法
System.out.println("总共有"+list.size()+"条狗狗");
//遍历狗狗信息
for (int i = 0; i < list.size(); i++) {
Dog dog = list.get(i);
System.out.println(dog.getName()+" "+dog.getStrain());
}
/**
* 删除狗狗信息
* boolean remove(Object o)从列表中删除元素
*Object remove(int index) 从列表中删除指定位置的元素,起始索引位置从0开始
*/
list.remove(1);
list.remove(dog4);
System.out.println("删除后剩余"+list.size()+"条狗狗");
//显示删除后剩余狗狗的信息
for (int i = 0; i < list.size(); i++) {
Dog dog = list.get(i);
System.out.println(dog.getName()+" "+dog.getStrain());
}
//boolean contains(Object o) 判断表中是否存在指定元素
if(list.contains(dog3)){
System.out.println("集合中包含dog3的信息");
}else{
System.out.println("集合中不包含dog3的信息");
}
}
}
LinkedList集合类的用法
LinkedList的特殊用法:
void addFirst(Object o) 在列表的首部添加元素
void addLast(Object o) 在列表的末尾添加元素
Object getFirst() 返回列表的第一个元素`
Object getLast() 返回列表的最后一个元素`
Object removeFirst() 删除并返回列表中的第一个元素
Object removeLast() 删除并返回列表中的最后一个元素
import java.util.LinkedList;
public class Test02 {
public static void main(String[] args) {
Dog dog1=new Dog("偶偶","雪纳瑞");
Dog dog2=new Dog("菲菲","藏獒");
Dog dog3=new Dog("美美","布拉不多");
Dog dog4=new Dog("fei","布拉不多");
LinkedList<Dog> list=new LinkedList<Dog>();
list.add(dog1);
//void add(int index ,Object o) 在指定位置添加元素
list.add(1,dog2);//下标从0开始
//void addLast(Object o) 在列表的末尾添加元素
list.addLast(dog3);
//void addFirst(Object o) 在列表的首部添加元素
list.addFirst(dog4);
//查看第一条狗狗的信息
Dog first = list.getFirst();
System.out.println("第一条狗狗的昵称"+first.getName());
//删除第一条狗狗和最后一条狗狗
list.removeFirst();
list.removeLast();
System.out.println("删除后剩余"+list.size()+"条狗狗");
//显示删除后剩余狗狗的信息
for (int i = 0; i < list.size(); i++) {
Dog dog = list.get(i);
System.out.println(dog.getName()+" "+dog.getStrain());
}
}
}