HashMap、HashSet、ArrayList学习小结


HashSet

特点:
1.无重复元素;(用做去重)
2.无序(因此无法使用get下标的方式获取值)
3.允许包含值为null的元素,但最多只能有一个null元素
常用方法:
1、add(Object)、addAll(Collection)继承自Collection的类:List或Set及其子类
2、contains(Object),如果集合中存在指定元素,则返回true,不存在则返回false;
3、isEmpty()判空
4、clear()清空
5、想要变成可用下标访问的可以用toArray(),将set转换成数组
6、Set的遍历方式

	Set<Integer> set=new HashSet();
	for (int i = 0; i < 10; i++) {
	    set.add(i);
	}
	Iterator<Integer> iterator=set.iterator();
	while (iterator.hasNext())
	{
	    System.out.println(iterator.next());
	}
	for (Integer i:set) {
	    System.out.println(i);
	}
	Integer[] a=set.toArray(new Integer[0]);
	for (Integer i:a) {
	    System.out.println(i);
	}

ArrayList

2、 List
特点:
1、是数组的升级版,省去了朱明数组长度的麻烦事
2、支持遍历,下标获取值,继承自Collection,支持排序方法
常用方法
1、 add(element e),add(index,element),addAll(Collection c)
2、 contains(Object e)
3、 get(int index)
4、 isEmpty()判空
5、 remove(int idex)
6、 size()返回集合长度
7、 toArray()转换成数组
8、 iterator迭代器,ListIterator ,有ListIterator可以向前遍历
9、 clear()清空集合
10、set(int index,Object e)用e替换掉位于下标为index的数据
11、sort()排序
ArrayList的遍历方法

List<Integer>list=new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
    list.add(i);
    for (Integer e:list) {
        System.out.println(e);
    }
}
Iterator iterator1=list.iterator();
while (iterator1.hasNext())
{
    System.out.println(iterator1.next());
}
ListIterator iterator2= list.listIterator(5);
while (iterator2.hasPrevious())
{
    System.out.println(iterator2.previous());
}

HashMap

特点:
1、 HashMap负载因子默认是0.75,可设置,当map填满了75%的bucket时候,将会创建原来HashMap大小两倍的bucket数组,来重新调整map的大小,并将原来的对象放入新的bucket数组中,这个过程叫做rehashing,因为它调用hash方法找到新的bucket位置。
2、HashMap可以接受null键值和值,HashMap是非synchronized的,存储的是键值对。

常用方法
1、Put()添加元素、putAll()添加继承了Collection的类对象
2、get(key)获取对应键的值
3、containsKey(Object key) 检测该映射中是否存在指定key的映射,有则返回true;没有则返回false
containsValue(Object value) 检测该映射中是否存在指定value的映射,有则返回true;没有则返回false
4、 remove(key)移除对应key的映射关系
5、 values()返回值的集合

Map<String ,String >map=new HashMap<>();
for (int i = 0; i < 10; i++) {
    map.put(String.valueOf(i), String.valueOf(i));
}
Collection<String >collection=map.values();
for (String i:collection) {
    System.out.println(i);
}

6、 isEmpty()判空
7、 entrySet()把map中的映射关系返回的一个Set中

Set<Map.Entry<String, String>> set=map.entrySet();
    System.out.println(set);

8、 keyset()和entrySet同理,只不过是返回键
9、containsKey,containsValue 判断其中是否包含键和值,值得一提的是,在Map映射中,查找的时间复杂度为O(1),因此在一些算法题中可以用来搞事情
10、HashMap的遍历方式为keySet().iterator();和valueSet().iterator();还有entrySet().iterator();将其转化成Set后再用迭代器遍历,又或者是有规律的key可以直接get(key)获取

仅用于个人学习总结!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值