Java elasticsearch ELK 随笔 Android 云标签 标签云 接口 数据库 时间 日期 格式化 搜索引擎 kibana 日志分析 集合 组合编码 Map logstash Linux

Java常用集合学习总结

一  数组

数组可以存储基本数据类型和对象的一种容器,长度固定,所以不适合在对象数量未知的情况下使用。

Arrays : 用于操作数组对象的工具类,里面都是静态方法。

Arrays.asList:把Array 转换成 List,可以作为其他集合类型构造器的参数。

private static void arrayToList() {  
      
        String[] arr = {"Hello","Hi"};    
        List<String> list = Arrays.asList(arr);    
        System.out.println(list);    
    }  

Arrays.binarySearch:在一个已排序的或者其中一段中快速查找。
Arrays.copyOf:扩大数组容量又不改变它的内容
Arrays.copyOfRange:可以复制整个数组或其中的一部分。
Arrays.deepEquals、Arrays.deepHashCode:Arrays.equals/hashCode的高级版本,支持子数组的操作。
Arrays.equals:如果你想要比较两个数组是否相等,应调用这个方法而不是数组对象中的 equals方法(数组对象中没有重写equals()方法,所以这个方法之比较引用而不比较内容)。
Arrays.fill:用一个给定的值填充整个数组或其中的一部分。
Arrays.hashCode:用来根据数组的内容计算其哈希值(数组对象的hashCode()不可用)。
Arrays.sort:对整个数组或者数组的一部分进行排序。也可以使用此方法用给定的比较器对对象数组进行排序。
Arrays.toString:打印数组的内容。

***********************************************************************************************************************************************************************************************************

二  List

List      对象有序,    可重复, 

List     拥有一系列和索引相关的方法,查询速度快插入删除数据速度慢。

  • ArrayList:底层使用的是数组结构,特点:查询速度快,增删操作较慢,而且线程不同步.
                      常用方法:add,addAll,remove,indexOf,subList,c
    ontains,isEmpty
  • LinkedList

 

***********************************************************************************************************************************************************************************************************

三  Set

set      无序        不重复
Set      集合中的对象不按特定的方式排序,只是简单地把对象加入集合中

 

  HashSet类(散列存放) Java.util.HashSet类实现了Java.util.Set接口

 

code

TreeSet(有序存放)  描述的是Set的一种变体——可以实现排序等功能的集合

public class TestTreeSet
{
    public static void main(String [] args)
    {
       TreeSet ts=new TreeSet();
       ts.add("orange");
       ts.add("apple");
       ts.add("banana");
       ts.add("grape");
       Iterator it=ts.iterator();
       while(it.hasNext())
       {
           String fruit=(String)it.next();
           System.out.println(fruit);
       }
    }
}
TestTreeSet

 

***********************************************************************************************************************************************************************************************************

四  Map

 

    • HashMap
      基于哈希表的 Map 接口的实现,存储键值对,键是唯一的,允许使用 null 值和 null 键,非同步(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同),同步可以使用Map m = Collections.synchronizedMap(new HashMap(...));
      常用方法:
      1. 添加。 put(key,value):当存储的键相同时,新的值会替换老的值,并将老值返回。如果键没有重复,返回null。 void putAll(Map);
      2. 删除。 void clear():清空 value remove(key) :删除指定键。
      3. 判断。 boolean isEmpty(): boolean containsKey(key):是否包含key boolean containsValue(value) :是否包含value
      4. 取出。 int size():返回长度 value get(key) :通过指定键获取对应的值。如果返回null,可以判断该键不存在。 当然有特殊情况,就是在hashmap集合中,是可以存储null键null值的。
        Collection values():获取map集合中的所有的值。
      5. 遍历Map的方式:

           1、将map 集合中所有的键取出存入set集合。

               Set<K> keySet()   返回所有的key对象的Set集合,再通过get方法获取键对应的值。

           2、 values() ,获取所有的值.

               Collection<V> values()不能获取到key对象

           3、 Map.Entry对象  推荐使用   重点

               Set<Map.Entry<k,v>> entrySet()   将map 集合中的键值映射关系打包成一个对象。

               Map.Entry对象通过Map.Entry 对象的getKey,getValue获取其键和值。

    • HashTable
      底层是哈希表数据结构,不可以存入null键null值,是线程同步的.
      Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子

 

posted @ 2017-09-02 15:53  DragOnlyG719  阅读(166)  评论(0编辑  收藏  举报