Java常用集合学习总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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接口
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); } } }
***********************************************************************************************************************************************************************************************************
四 Map
- HashMap
基于哈希表的 Map 接口的实现,存储键值对,键是唯一的,允许使用 null 值和 null 键,非同步(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同),同步可以使用Map m = Collections.synchronizedMap(new HashMap(...));
常用方法:- 添加。 put(key,value):当存储的键相同时,新的值会替换老的值,并将老值返回。如果键没有重复,返回null。 void putAll(Map);
- 删除。 void clear():清空 value remove(key) :删除指定键。
- 判断。 boolean isEmpty(): boolean containsKey(key):是否包含key boolean containsValue(value) :是否包含value
- 取出。 int size():返回长度 value get(key) :通过指定键获取对应的值。如果返回null,可以判断该键不存在。 当然有特殊情况,就是在hashmap集合中,是可以存储null键null值的。
Collection values():获取map集合中的所有的值。 - 遍历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 的实例有两个参数影响其性能:初始容量
和加载因子
以上是关于Java常用集合学习总结的主要内容,如果未能解决你的问题,请参考以下文章
201621123037 《Java程序设计》第9周学习总结
201621123057 《Java程序设计》第9周学习总结