集合框架

Posted wh1520577322

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合框架相关的知识,希望对你有一定的参考价值。

java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中

collection接口存储一组不唯一,无序的对象
list 接口存储一组不唯一,有序(插入顺序)的对象
set 接口存储一组唯一,无序的对象

ArrayList实现长度可变的数组,在内存中分配连续的空间.遍历元素和随机访问元素的效率比较高

LinkedList采用链表存储方式.插入删除元素时效率比较高

 Vector 和 ArrayLis 的异同
实现原理、功能相同、可以互用
主要区别
vector线程安全,ArrayList 重速度轻安全线程非安全
长度需增长时,vector默认增长一倍ArrayList增长50%

Hshtable 和 HashMap的异同

实现原理、功能相同、可以互用
主要区别
  Hashtable 继承 Dictionary 类 Hashtable实现Map接口
  Hashtable 线程安全,Hashmap线程非安全
Hashtable不允许有null值,Hashtable 允许null值

在实际开发中最好使用ArrayList 和Hashmap

Collections工具类
java.util.Collections
sort()(排序)方法

Map coutries=new HashMap();
添加 put(Object key键名,Object value值)
coutries.put("","");
通过key获得值
String conter=(String)coutries.get("填写key值");
显示集合中的个数
coutries.size();
判断是否存在键名 (返回一个bool值)
Boolean bool=coutries.containsKeys("键名")
判断是否存在值 (返回一个bool值)
Boolean bool=coutries.containsValue("值")
删除集合对象
coutries.remove("键名");
键集
coutries.keySet();
值集
coutries.values();
键值对集合
coutries;
foreach遍历
for(Object obj:coutries.keySet()){
String keys=(String)obj;
System.out.println("键值集合"+keys);
}
遍历velues值只需把键值换成velues值
清空HashMap判断
coutries.clear();
if(coutries.isEmpty()){
System.out.println("全部清空")
}
使用迭代器遍历
   (集合名)获得键值
Set keys=dogMap.keySet();
获得Iteraotr对象
Iteraotr it = keys.Iteraotr();
While(it.hasNext()){
String key=(String)it.hasNext(); 获得键名
System.out.Print(key) 输出键名
Dog dog=(Dog)dogMap.get(key);

}

 

迭代器只用于单列集合 双列集合要想使用迭代器 先把双列集合装换成单例集合

package map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 * hehe
 */
public class Mymain {
    public static void main(String[] args) {
        Map<String, String> list = new HashMap<String, String>();
        list.put("1", "10");
        list.put("2", "20");
        list.put("3", "30");
        Set<String> key1 = list.keySet();
        for (String key : list.keySet()) {

            System.out.println(list.get(key));
        }
        System.out.println("==========================================");
        Set<Entry<String, String>> enSet = list.entrySet();
        for (Entry<String, String> entry : enSet) {
            System.out.println(entry.getKey());
        }
        System.out.println("===========================================");
        Iterator<String> keyIterator = key1.iterator();
        while (keyIterator.hasNext()) {
            String key = keyIterator.next();
            System.out.println(key);
            System.out.println(list.get(key));
        }
        System.out
                .println("-------------------------------------------------------------");
        Iterator<Entry<String, String>> enSet1 = list.entrySet().iterator();
        while (enSet1.hasNext()) {
            Entry<String, String> nextEntry = enSet1.next();
            System.out.println(nextEntry.getKey());
            System.out.println(nextEntry.getValue());
        }
    }
}

 

以上是关于集合框架的主要内容,如果未能解决你的问题,请参考以下文章

text 来自Codyhouse框架的Browserlist片段源代码

金蝶handler中 collection 代码片段理解

Alfred常见使用

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

比较 C# 中的字符串片段并从集合中删除项目

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]