Java集合

Collection接口(java.util):

List接口(有序,可重复,查询速度快,插入或删除慢):

LinkedList类

ArrayList类

Vector类

Set接口(无序,不可重复):

HashSet类(无序,不可重复)

TreeSet类(有序(用二叉排序树),不可重复)

Map接口(java.util)[使用key-value来映射存储数据,key必须唯一,value可以重复]:

HashMap类(无序)
TreeMap类(有序(用二叉排序树))

遍历:

Iterator接口(java.util):迭代输出,是使用最多的输出方式
ListIterator接口(java.util):是Iterator的子接口,专门用于输出list中的内容

foreach和for循环


ArrayList和LinkedList的区别

LinkedList经常用在增删操作较多,而查询操作较少的情况下,ArrayList则相反用在增删操作较少,查询较多的情况下

HashMap

HashMap是最常用的Map,它根据HashCode值存储数据,根据键可以直接获取它的值,因此访问速度快。HshMap最多只允许一条记录的键为NULL,允许多条记录的值为NULL,是非同步的

Hashtable

Hashtable与HashMap类似,但它支持线程的同步,所以是线程安全的,Hashtable在写入时比较慢,集成自Dictionary类,不同的是它不允许记录的键或值为null,同时效率较低

LinkedHashMap
LinkedHashMap保存了记录插入的顺序,在用Iterator遍历的时,先得到的记录肯定是先插入的,在遍历的时候会比HashMap慢

TreeMap

TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是是按键值的升序排序(自然排序)

List集合常用方法

Vector和ArrayList

Vector的方法都是同步的(Synchronized),是线程安全的,而ArrayList的方法是不是,由于线程的同步必然要影响性能,因此ArrayList的性能比Vector好。

当Vector或ArrayList超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%大小这样ArrayList就有利于节约内存空间

通过迭代器遍历一个List

		Iterator<String> it = l.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}

Collections是一个对集合操作的包装类

public static <T> void sort(List<T> list,Comparator<? super T> c)  根据元素的自然顺序 对指定列表按升序进行排序。
public static <T> int binarySearch(List<? extends T> list, T key,Comparator<? super T> c)使用二分搜索法搜索指定列表,以获得指定对象。
public static void reverse(List<?> list) 反转指定列表中元素的顺序。
public static void shuffle(List<?> list) public static void swap(List<?> list,int i,int j) 使用默认随机源对指定列表进行置换

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值