列举几个Java中Collection类库中的常用类

Collection类库中的常用类

  • Java中的集合框架是指一系列存储数据的接口和类,这些类和接口都位于java.util包中
  • 使用集合框架可以解决复杂的数据存储问题,Java中内置了丰富的集合框架

在这里插入图片描述

List接口、类关系图

在这里插入图片描述

  1. ArrayList用法类似于数组,且其容量可按需要动态调整,亦被称为动态数组
  2. LinkedList表示链表的操作类,它同时实现了List和Queue接口。它的优点在于向集合中插入、删除元素时效率比较高,特别是可以直接对集合的首部和尾部元素进行插入和删除操作,LinkedList提供了专门针对首尾元素的方法,

Set接口、类关系图

在这里插入图片描述

Set集合存储顺序无序,不可以保存重复元素。

import java.util.*;
public class SetDemo {
    public static void main(String args[]){
        Set set = new HashSet();
        set.add("apple");//添加元素
        set.add("orange");//添加元素
        set.add("pear");
        set.add("pear");//重复元素不能加入
        set.add("banana");
                  System.out.println(set);
    }
}
  1. HashSet类中没有提供根据集合索引获取索引对应的值的方法,
    因此遍历HashSet时需要使用Iterator迭代器。Iterator的主要方法如下

在这里插入图片描述

public static void main(String args[]) {
       Set set = new HashSet();
       set.add("apple");
       set.add("orange");
       set.add("pear");
       set.add("pear");//重复元素不能加入
       set.add("banana");
       Iterator iterator = set.iterator();
       while(iterator.hasNext()){
       System.out.println(iterator.next());
       }      
 }
  1. TreeSet是可以保持自然顺序或者定义的比较器比较的结果顺序的Set集合。
import java.util.*;
public class SetDemo {
    public static void main(String args[]){
        TreeSet set = new TreeSet();
        set.add("kkkkk");
        set.add("ddddd");
        set.add("vvvvv");
        set.add("eeeee");
        set.add("kkkkk");                 
        System.out.println(set);
    }
}

在这里插入图片描述

当TreeSet集合中加入一个对象时,会把它插入到有序的对象序列中。TreeSet支持两种排序方式:自然排序和自定义排序。默认情况下TreeSet采用自然排序方式。

自定义排序:

制作一个比较器

package com.xintouyun.jihe.zidingyipaixutest;

import java.util.Comparator;

import com.xintouyun.jihe.zidingyipaixutest.Custumer;

public class CustumerComparator implements Comparator<Object> {
    public int compare(Object obj1, Object obj2) {
    	Custumer c1 = (Custumer)obj1;
        Custumer c2 = (Custumer)obj2;
        if(c1.getName().compareTo(c2.getName())>0)
            return 1;
        if(c1.getName().compareTo(c2.getName())<0)
            return -1;
        return 0;
    }
}

测试类:

package com.xintouyun.jihe.zidingyipaixutest;

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

import com.xintouyun.jihe.zidingyipaixutest.Custumer;

public class test {
    public static void main(String[] args) {
        //创建set对象传入一个参数比较器
            Set<Custumer> set = new TreeSet<Custumer>(new CustumerComparator());
            Custumer custumer1 = new Custumer("Bluce", 15);
            Custumer custumer2 = new Custumer("Jack", 18);
            Custumer custumer3 = new Custumer("Rose", 25);
            Custumer custumer4 = new Custumer("rose", 25);
            set.add(custumer1);
            set.add(custumer2);
            set.add(custumer3);
            set.add(custumer4);
            Iterator<Custumer> it = set.iterator();
            while(it.hasNext())
            {
                Custumer custumer  =(Custumer)it.next();
                System.out.println(custumer.getName() + "\t" + custumer.getAge());
            }
    }
}

实体类:

package com.xintouyun.jihe.zidingyipaixutest;

public class Custumer {
        private String name;//姓名
        private int age;    //年龄
        Custumer(String name,int age){
            this.age=age;
            this.name=name;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        
    }

————————————————
版权声明:本文为CSDN博主「一生所Ai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40180411/article/details/81414585

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值