黑马程序员技术交流社区

标题: 集合 [打印本页]

作者: Robinpig    时间: 2018-8-28 17:09
标题: 集合
什么是集合
集合类存放于java.util包中。
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。
集合类型主要有3种:set(集)、list(列表)和map(映射)。

通俗的说,集合就是一个放数据的容器,准确的说是放数据对象引用的容器。
有哪些集合

集合主要分为Collection和Map2个接口
Collection又分别被List和Set继承
List被AbstractList实现,然后分为3个子类,ArrayList,LinkList和Vector
Set被AbstractSet实现,又分为HashSet和TreeSet
而Map衍生出的集合分为HashMap,HashTable和TreeMap
有三大集合:List    Map     Set
集合有哪些特点?

1.List

特点:元素是有序的(怎样放进去就怎样显示),内容可以重复

Arraylist:数组结构,查询快,增删改慢。

LinkedList:链表结构,查询慢,增删改快。

Vector:增删查改都慢。



LinkedList有特有的开头和结尾的方法addFirst(),addLast();

使用场景:制作贪吃蛇游戏。



2.Set

特点:元素是无序的(但是它进行的排序),内容不可以重复

hashSet:可以添加空值

treeSet:不可以添加空值

使用场景:比如一个学校里,班级的班级编号不可以重复



3.Map

hashMap:可加空值(无序)

hashTable:不能加空值(无序)

treeMap:可以加空值(有序)

迭代Map(遍历):

1.获取所有的键,在根据键获取值

方法名:keySet();

2.获取所有的值

方法名:values();

3.获取键和值(一个一个的获取)

方法名:entrySet();



代码实现迭代Map

public class TestMap {
    //键值对
    public static void main(String[] args) {
        Map<String, Object> map=new HashMap<String, Object>();
        map.put("A", "AAAA");
        map.put("2", "2222");
        map.put("3", "3333");
        map.put("王", "大小王");
        
        //遍历
        //01.获取所有的键,再根据键获取值
        Set<String> strings=map.keySet();
        for (String string : strings) {
            System.out.println(string+":"+map.get(string));
        }
        
        //02.获取所有的值
        Collection<Object> collection=map.values();
        for (Object object : collection) {
            System.out.println(object);
        }
        
        //03.获取键和值(一个一个)
        Set<Entry<String, Object>> entries=map.entrySet();
        for (Entry<String, Object> entry : entries) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
    }
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2