集合笔记

来源:互联网 发布:逆战一直检测数据异常 编辑:程序博客网 时间:2024/06/06 12:43


list(列表)
List:元素是有序的、可以重复
ArrayList:底层的数据结构使用的是数组结构(数组长度是可变的百分之五十延长)(特点是查询很快,但增删较慢)线程不同步
LinkedList:底层的数据结构是链表结构(特点是查询较慢,增删较快) 
方法:
boolean add(int index, E element)
boolean addAll(index,Collection)
boolean remove(int index)
Object set(int index, E element)  返回的是修改的那个元素
get(int index)   返回列表中指定位置的元素
subList(int fromIndex, int toIndex)    [)开区间~~~闭区间
void clear():删除集合中所有的对象, 
List集合特有的迭代器:ListIterator(是Iterator的子接口)
LinkedList:特有方法:  
offerFirst(); offerLast();  //插入第一个  插入最后一个
peekFirst(); peekLast(); 获取元素,但是元素不被删除。如果集合中没有元素,会返回null
pollFirst(); pollLast(); 获取元素,但是元素被删除。如果集合中没有元素,会返回null 


Set(集合): Set是最简单的一种集合。无序,不重复。 Set接口主要实现了两个实现类:
HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快 
TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。


set遍历:
1.迭代遍历:
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
 String str = it.next();
 System.out.println(str);
}
2.for循环遍历:
for (String str : set) {
     System.out.println(str);
}
优点还体现在泛型 假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
for循环遍历:
for (Object obj: set) {
     if(obj instanceof Integer){
               int aa= (Integer)obj;
            }else if(obj instanceof String){
              String aa = (String)obj
            }
             ........



Map(映射): 
Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。Map没有继承于Collection接口从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。 
HashMap 在HashMap中, 不是线程安全的 (SynchronizedMap ) null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null
Hashtable Hashtable是线程安全的
Object put(Object key, Object value): 向集合中加入元素 
Object remove(Object key): 删除与KEY相关的元素 
void putAll(Map t):  将来自特定映像的所有元素添加给该映像 
void clear():从映像中删除所有映射 
Object get(Object key):获得与关键字key相关的值
for(Object obj : map.keySet()){
Object value = map.get(obj );
}
原创粉丝点击