常用集合体系 及如何给类进行排序?

Collection接口存储一组不唯一,无序的对象

List接口存储一组不唯一,有序(插入顺序)的对象

List 的实现类 ArrayList 和 LinkedList

ArrayList常用方法

方法名

说明

boolean add(Object o)

在列表的末尾顺序添加元素,起始索引位置从0开始

void add(int index,Object o)

在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间

int size()

返回列表中的元素个数

Object get(int index)

返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换

boolean contains(Object o)

判断列表中是否存在指定元素

boolean remove(Object o)

从列表中删除元素

Object remove(int index)

从列表中删除指定位置元素,起始索引位置从0开始

LinkedList常用方法

方法名

说明

void  addFirst(Object o)

在列表的首部添加元素

void  addLast(Object o)

在列表的末尾添加元素

Object  getFirst()

返回列表中的第一个元素

Object  getLast()

返回列表中的最后一个元素

Object  removeFirst()

删除并返回列表中的第一个元素

Object  removeLast()

删除并返回列表中的最后一个元素

Set接口存储一组唯一,无序的对象

HashSet是Set接口常用的实现类 TreeSet是Set接口常用的实现类

Set接口不存在get()方法

方法1:通过迭代器Iterator实现遍历

获取Iterator :Collection 接口的iterator()方法

Iterator的方法

boolean hasNext(): 判断是否存在另一个可访问的元素

Object

next(): 返回要访问的下一个元素

方法2:增强型for循环

Map接口存储一组键值对象,提供key到value的映射

Map接口常用方法

方法名

说明

Object put(Object key, Object val)

以“键-值”对的方式进行存储

Object get(Object key)

根据键返回相关联的值,如果不存在指定的键,返回null

Object remove(Object key)

删除由指定的键映射的“键-值对”

int size()

返回元素个数

Set keySet()

返回键的集合

Collection values()

返回值的集合

boolean containsKey(Object key)

如果存在由指定的键映射的“键-值对”,返回true

泛型集合

泛型集合可以约束集合内的元素类型

典型泛型集合ArrayList、HashMap

表示该泛型集合中的元素类型

泛型集合中的数据不再转换为Object

除了指定了集合中的元素类型外,泛型集合和之前学习的集合的用法完全一样

Collections类常用方法

Collections和Collection不同,前者是集合的操作类,后者是集合接口

Collections提供的常用静态方法

sort():排序

binarySearch():查找

max()\min():查找最大\最小值

    public static void main(String[] args) {
        //理解 TreeSet的使用
        //无重复 无索引 排序
        Set<Integer> set =new TreeSet<>();
        set.add(12);
        set.add(1);
        set.add(123);
        set.add(132);
        set.add(142);
        System.out.println(set);

        Set<String> set1 =new TreeSet<>();
        set1.add("avc");
        set1.add("zvc");
        set1.add("tvc");
        set1.add("C");
        set1.add("D");
        set1.add("黑马");
  
        System.out.println(set1);
           //需要自定义比较规则 按价格排序
//        Set<Apple> set2 =new TreeSet<>(new Comparator<Apple>() {
//            @Override
//            public int compare(Apple o1, Apple o2) {
//              //  return o1.getWeight()- o2.getWeight();//升序
//              //  return o2.getWeight()- o1.getWeight();//降序
//               // return  Double.compare(o1.getPrice(),o2.getPrice());//升序
//                return  Double.compare(o2.getPrice(),o1.getPrice());//降序
//            }
//        });
        //简化lambda表达式
        Set<Apple> set2 =new TreeSet<>(( o1, o2)-> Double.compare(o2.getPrice(),o1.getPrice()));

        set2.add(new Apple("红苹果","红色",9.9,500));
        set2.add(new Apple("绿苹果","绿色",99.9,400));
        set2.add(new Apple("青苹果","青色",9.8,300));
        set2.add(new Apple("紫苹果","紫色",9.6,500));
        System.out.println(set2);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值