集合框架(二)

集合框架(二)

回顾

Java中提供的集合框架体系结构有哪些?

Iterator -> Collection -> List (ArrayList LinkedList) Set(HashSet TreeSet)

Map -> HashMap HashTable TreeMap

Collection、List、Set的特点

Collection:不唯一的,无序的

List:不唯一的 有序

Set:唯一的 无序的

Collection和Collections的区别?

Collection是集合的顶级接口

Collections是集合的工具类

ArrayList的常用API

存储数据:

​ boolean add(Object obj); 向集合后追加元素

​ void add(int index,Object obj); 向集合的指定位置添加元素 原有位置元素 依次后移

删除数据:

​ remove(int index); 根据下标来删除元素

​ remove(Object obj); 将指定值删除

获取集合的长度: size();

**获取集合中的元素:**get(int index);

**判断集合中是否包含指定元素:**contains(Object obj);

LinkedList的常用API

addFirst(Object obj);

addLast(Object);

removeFirst();

removeLast();

getFirst();

getLast();

ArrayList和LinkedList的区别

ArrayList 底层是数组结构,它在每一次增删时都会重新创建新的数组,所以在增删方面效率比较低。因为数组有固定的下标,所以在查询方面效率比较高。

LinkedList 底层是链表结构(数据值和指针域组成) ,在增删方面尤其是首尾增删效率比较高,但是因为没有固定的下标,所以在查询方面效率比较低。

HashSet

equals() hashcode()

集合的遍历

ArrayList:

​ 1.for(int i = 0; i < list.size(); i++){

​ }

​ 2.增强for

​ for(临时类型 临时的变量名 : 集合名){

​ }

​ 3.迭代器

​ Iterator iterator = list.iterator();

​ while(iterator.hasNext()){

​ iterator.next();

​ }

LinkedList:

​ 同上!

HashSet:

​ 1.增强for

​ 2.迭代器

1.Map的使用

HashMap

HashTable

课程编码和课程信息对应的需求。

BD001 -> Java课程

BD002 -> UI课程

BD003 -> C#课程

Key -Value 键值对 夫妻对!

常用API

  1. put(Object key,Object value); 存储键值对
  2. get(Object key); 根据键(唯一的)获取值
  3. containsKey(Object key); 判断是否包含指定键
  4. containsValue(Object value); 判断是否包含指定值
  5. size(); 获取集合长度
  6. Set keySet(); 获取所有键集合
  7. Collection values(); 获取所有值的集合
  8. clear(); 清空所有数据

Map集合的遍历

  1. 使用迭代器

    1.1Map集合获取所有的键集合

    1.2遍历键集合(迭代器),然后通过键获取值

  2. 使用增强for

    2.1Map集合获取所有的键集合

    2.2遍历键集合(增强for),然后通过键获取值

  3. 使用键值对集合

    3.1Map集合获取entrySet(键值对的Set集合)

    3.2遍历entrySet将其中每一个entry取出来

    3.3从entry中将键和值取出来

2. 泛型的作用

包装类型

必须使用引用数据类型

public class Demo3 {
    public static void main(String[] args) {

        // 泛型:用来限制集合中元素的类型(获取数据后可以不用强转)
        // 泛型在限定类型时,类型必须是引用数据类型
        // int -> Integer
        /*ArrayList<Integer> arrayList = new ArrayList<Integer>();
        arrayList.add(20);*/

        // double -> Double
        /*ArrayList<Double> arrayList = new ArrayList<Double>();
        arrayList.add(20.1);
        System.out.println(arrayList);*/
        // byte -> Byte
        // short -> Short
        // long -> Long
        // float -> Float
        // boolean -> Boolean
        // char -> Character

        // 基本数据类型是没有方法和属性(类的信息)的
        Integer a = 10;
    }
}

3. Collections的了解

常用API

  1. sort(集合); 给集合进行排序 升序
  2. binarySearch(集合,键); 从集合中查找指定的值
  3. max() / min() 获取最大值 最小值
  4. shuffle() 打乱集合内元素

猜你喜欢

转载自blog.csdn.net/weixin_44637905/article/details/89739716