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)获取