Mosh_Java笔记 P3-3.2 集合类

1. 列表接口

如果只关心集合里的增加删除等操作,那么用集合
如果需要关心集合的顺序,索引,则用List列表

集合中不支持索引,而在列表中,假如我们add了'1''2''3',想在list[0]处插入一个新的数字,则可以使用索引

list.add(0,"!");如图

当然由于list仍然属于集合,我们也可以用集合的方式来操作它,例如添加所有的元素
Colletions.addAll(list,"a""b""c");
但是我们同时可以使用列表的操作,
比如可以通过列表的索引来访问对象
list.get(0); -返回a
也可以用list的方法来进行赋值,例如
list.set(0,"a+"); -sout(list)会返回[a+,b,c];
也可以通过列表的下表来删除元素
如:list(0),注意这里和集合不同,集合里不能通过索引来删除元素
也可以查询元素第一次出现的位置即索引
如list.indexOf("a");则会返回a第一次出现的位置0 ,若没有搜索到存在则会返回-1
与之类似的可以返回a最后一次返回的位置,比如我们在list里末尾再添加一个元素‘a’
可以通过list.lastIndexOf("a"),来返回最后一次a出现的索引位置,即3
还可以返回list的子列表,如
sout(subList(0,2));注意左闭右开,此时输出会返回一个新列表[a,b]

2. 数组排序

3. 队列

4. Set

set的四种操作||假如我们现在有两个集合

可以对集合做三种操作(并集,交集 ,补集)

    1. Union set1.addAll(set2) 输出abcd
  • 2.Interection set1.retainAll(set2) 输出set1和set2共有的元素,输出bc
  • 3.Difference set1.removeAll(set2) 移除set1里所有set2含有的元素再输出1,即输出a

5. Hash Table(哈希表)

6. Map

    1. Map的定义(90%以上的情况,我们用到的都是HashMap)
      Map<K,V> map = new HashMap<>();
    1. 往map中存放元素-put
      map.put(1,“羊肉”)
      若存放的是对象,比如定义了个对象cutomer
      var c1 = new Customer("a","email1");
      则存放对象可以用map.put(c1.getEmail(),c1)
    1. 若我们想依据键去找对应的value,可以用get方法
      如 var customer = map.get("email1"),get的是键e1,则会返回值a

***如果我们找到了一个map中不存在的键值, 输出时会返回null
可以通过设定默认的返回值
例如 我们get了一个e10,但并不存在这样的键

会返回unknown

    1. 查找是否含有某个键
      map.containsKey("") -返回的是一个布尔值
    1. 替换键值对
      map.repalce("e1",new Customer("a++",e1) ),即设定相同的键覆盖即可

map的输出

    1. map的遍历
      由于map接口不可变,不可以用for循环迭代map

有三种方法可以遍历map

    1. 遍历keySet -会返回键对应的键
    1. entrySet - 返回一个集合类型,因为集合可以迭代

输出是这样的,同时输出键和值

或者我们可以单独输出 getKey()或getValue()
for(entry : map.entrySet())
System.out.println(entry.getKey/getValue)

    1. 返回值的集合,同样也是可迭代的

      返回的是值的集合
posted @ 2022-03-27 22:12  全辣柯基  阅读(44)  评论(0编辑  收藏  举报