2022-08-06 第二小组 张鑫 学习笔记

实训二十八天 集合

1.学习重点

1.集合结构
2.面视题

2.学习内容

List

数据是有顺序(添加的先后顺序)的,数据是可以重复。

ArrayList:内部结构是数组。比较适合做高频率的查找,遍历。
LinkedList:双向链表。比较适合做高频率的新增和删除。
Vector:和ArrayList几乎一模一样。
Collection接口
List:有顺序,元素可以重复,顺序指的是添加的先后顺序
Set:没有顺序,元素不可以重复,顺序指的是添加的先后顺序

Set其实是有顺序,内部有一个专门排序的算法

1.所谓的无序不等于随机
2.所谓的无序指的是没有按照添加的先后顺序,其实内部是做了排序的

Set集合如何确保数据的不重复
保证数据类型的类要重写hashCode和equals方法


TreeSet
排序规则
要排序的对象的类必须实现Comparable接口
LinkedHashSet:在添加数据的同时维护数据的添加顺序
效率要比HashSet略低一些
比较接口
Comparable接口:自然排序,排序规则是固定。
Comparator接口:临时排序
Map接口
1.存储对值K-V key-value
2.key不能重复,value是可以重复的
3.没有顺序(添加的先后顺序)
HashMap内部存储结构
jdk1.7之前:链表 + 数组
jdk1.7及之后:链表 + 数组 + 红黑树

Hashtable和HashMap几乎一模一样

Properties:属性
Properties是Hashtable的子类,更多地是用来操作属性文件。
List集合的遍历
public static void main(String[] args) {
   List<String> list = new ArrayList<>();
   list.add("a");
   list.add("b");
   list.add("c");
   list.add("d");
   // 1.for循环
      for (int i = 0; i < list.size(); i++) {
          System.out.println(list.get(i));
      }
    // 2.foreach语句
      for (String s : list) {
          System.out.println(s);
      }
    // 3.迭代器
    Iterator<String> iterator = list.iterator();
    while(iterator.hasNext()) {
        String s = iterator.next();
        iterator.remove();
          System.out.println(s);
    }
    System.out.println(list);
}
其他的集合
1.LinkedHashMap,在HashMap的基础上维护了一个双向链表。
2.TreeMap:天然支持排序
3.Collections:Collections是一个工具类
posted @ 2022-08-13 16:16  菜鸡成长记  阅读(45)  评论(0)    收藏  举报