SET/LIST/MAP

        java.util.Set接口及其子类,set提供的是一个无序的集合;
        java.util.List接口及其子类,List提供的是一个有序的集合;
        java.util.Map接口及其子类,Map提供了一个映射(对应)关系的集合数据结构;
        Set是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象;而LIst的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的集是不同的。
        列表在数据结构中分别表现为:数组和向量、链表、堆栈、队列。关于实现列表的集合类,是我们日常工作中经常用到的;从类图中可以看到,Set 和List都是继承了Collection接口的子接口,而这类集合都有自己的实现;

Boolean add(E o) : 向集合中加入一个对象,如果集中己有这个对象,则返回false;
Boolean addAll(Collection<? extends E> c) 将另外一个集合中的所有对象加入这个集合
void clear() 清除集合中的所有对象,执行过后,集合中不在装有对象
boolean contains(Object o) 判断集合是是否存在某个对象
boolean containsAll(Collection<?> c) 判断集合中是否全部存在另外一个集合中的对象
boolean equals(Object o)
int hashCode() 可重写的来自父类的方法
boolean isEmpty() 判断集合是否为空,在执行clear()后调用这个方法,返回true
Iterator<E> iterator() 得到这个集合的一个迭代对象
boolean remove(Object o) 从集合中移除掉一个对象
int size() 返回集合内元素的个数
Object[] toArray() 将集合转变一个数组对象
        ①Set是一个接口定义,所以我们只能使用它的实现子类,Set接口常用的子类有java.util.HashSet、java.util. TreeSet;
              //遍历:
     while(it.hasNext()){
                A a=it.next();
                a.showInfo();
    }
            //A代表一个类,a是一个对象,showInfo()是一个自己写的输出函数
        ②List了类除了实现Collection中的方法外,还有如下几个特有的方法:
boolean addAll(int index, Collection<? extends E> c) 向一个List列表中插入一个对象 ,index必须小与getSize()返回的值。
E get(int index) 取得list列表中指定位置的一个对象,如果index值大与getSize()返回的值,调用将抛出异常。
                
            //遍历:
               for(int i=0;i<list.size();i++){
                A a=list.get(i);;
                a.showInfo();
             }//同上
        ③Map是一个接口,有多种具体的实现类,常用的有HashMap和Hashtable类实现。Map中存入的对象是一对一对的,即每个对象和它的一个名字(键)关联在一起,Map中数据存放的结构如下图示:
[img]Key(键或名) Value(key对应的值)
“userName1”        UserInfo对象1
“userName1”        UserInfo对象1
“userName1”        UserInfo对象1
[/img]   
        Map中的键不能重复,但值可以重复。Map接口中定义了如下常用方法:
V put(K key, V value)
向Map中放入一对有关联关系的对象,如果Map中己有与Key关联的对象,则返回那个对象(原对象被新放入的对象替代),否则返回Null;参数前的K和V分别代表了放入的键和值泛型的类型。
void putAll(Map<? extends K,? extends V> t) 将另外一个Map中的键和值加入到Map中
V get(Object key) 从Map中返回与参数Key相关联的value对象
boolean containsKey(Object key) 判断Map的Key中是否存在某指定Key对象
boolean containsValue(Object value) 判断Map的value中是否存在value对象
V remove(Object key) 从Map中移除key对应的value
int size() 得到Map中Entry的个数,即Map中有多少对对象。
Set<K> keySet() 将Map中所有的key对象放入一个Set返回
Collection<V> values() 将Map中所有Value对象做为一个Collection返回
                   
           //迭代key
            while(it.hasNext()){
              String key=it.next();
              A a=m.get(key);
              a.showInfo();
            }//m是一个Map对象
        ④Map中不可以放入null的key,但可以有null的Value。Set和List中可以有努力啦的value。

你可能感兴趣的:(数据结构,C++,c,工作,C#)