1、集合是什么?
数组就是集合,集合不一定是数组;集合实际上就是一个容器,可容纳其他类型的数据。
2、集合为什么在开发中使用比较多?
集合就是一个容器,可以一次容纳多个对象,在实际开发中,假设连接数据库,数据库当中有10条记录,那么假设把这十条记录查询出来,在java程序中会将十条数据封装成十个对象,以对象形式梵高某一个集合当中,将集合传到前端,然后遍历集合,将数据展现出来。
3、集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是对象的内存地址(或者说存储的是引用)。
如list.add(100);//自动装箱integer
4、在java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中(数组、二叉树、链表、哈希表…)。
ArrayList:底层是数组
LinkedList:底层是双向链表
Vector:底层是数组,线程安全的,效率较低,使用较少。
HashSet:底层是HashMap,放到HashSet集合中的元素等于放到HashMap集合key部分了。
TreeSet:底层是TreeMap,放到TreeSet集合中的元素等于放到TreeMap集合key部分了。
HashMap:底层是哈希表
Hashtable:底层是哈希表,不过是线程安全的,效率较低,使用较少。
Properties:线程安全并且key和value只能存储字符串string。
TreeMap:底层是二叉树。TreeMap集合的key可以自动按照大小顺序排序。
5、Collection接口:
Collection接口是所有集合类的根接口,可以存储所有object的子类型。
例如:Collection a =new ArrayList(); //多态
常用方法就是和集合一样,什么增删啊,判空,获取集合长度啥的。
Map集合和Collection集合没有任何关系,Map集合是以key和value的这种键值对的方式存储元素。
Collection接口,包含list和set子接口,list接口通过LinkedList、ArrayList、Vector类实现,set接口通过HashSet和TreeSet类实现。
6、Map接口:
Map集合是以key和value的这种键值对的方式存储元素。给定一个键和一个值之后,你可以将该值存储在一个map对象,之后就可以通过键来访问对应的值。
Ex:
public static void main(String[] args) {
Map m = new HashMap();
m1.put("Zara", "8");
m1.put("Mahnaz", "31");
m1.put("Ayan", "12");
m1.put("Daisy", "14");
System.out.println();
System.out.println(" Map Elements");
System.out.print("\t" + m);
}
输出:
Map Elements
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
Map接口可通过HashMap、Hashtable类实现,包含SortedMap子接口, SortedMap接口通过TreeMap类实现。