javaSE基础-集合框架笔记

/**
     * 在迭代时不可通过集合对象的方法操作集合中的元素 比如 : list.add(); list.set();等
     * List集合特有迭代器ListIterator是Iterator的子接口,因为有下标
     */
    public static void listIterator(){
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");

        ListIterator li = list.listIterator();
        //正向迭代
        while (li.hasNext()){
            if(li.next() == "2")
                li.set("4");
        }
        System.out.println(list);
        //反向迭代
        while (li.hasPrevious()){
            System.out.println(li.previous());
        }
    }

LikedList特有方法:

在这里插入图片描述
remove方法如果集合为空则会报NoSuchElementException 错
在这里插入图片描述
HashSet集合保证元素唯一的方法
通过元素的两个方法,hashCode()和equals()方法来完成,如果元素的hashCode值相同,才会调用equals方法判断是否为true,如果元素的hashCode值不同,不会调用equals方法,所以要完成属性相同则视为同一对象则需要复写hashCode()和equals()方法
注意
  hashSet 对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashCode和equals方法
  ArrayList判断元素是否相同用equals一个方法
Set集合:无序,不可重复元素
  HashSet:数据结构是哈希表,线程是非同步的,保证元素唯一的方法看上述
  TreeSet:可以对set集合中的元素进行排序,底层数据结构为二叉树(红黑树),保证元素唯一性的依据:compareTo方法return 0;
  排序的实现方式:
    第一种:让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法,也称为元素的自然排序或者默认排序
    第二种:当元素不具备比较性或者具备的比较性不是所需要的,这是需要让集合自身具备比较性。在集合初始化时就具有比较方式,定义比较器(定义一个类实现Comparator接口,覆盖compare方法),将比较器对象做为参数传递给TreeSet集合的构造函数
    当两种方法都存在时,以比较器为主

关于Arrays.asList()的使用(将数组转换为list集合):
如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素
如果数组中的元素都是基本数据类型,那么会将该数组做为集合中的元素存在(返回的hashCode地址)

Collection.toArray()集合变数组:

List<String> arrayList = new ArrayList<String>();
arrayList.add("sfd");
arrayList.add("ad");
arrayList.add("ads");
/**
其中 String[]长度定义为集合的长度(size),
如果定义的长度大于size则该方法不会再创建数组,而是使用该传入数组,其余元素用默认值填充,
如果定义的长度小于size则该方法内部会创建一个长度为size的新数组

这里采用 size定义数组最优
*/
String[] strs = arrayList.toArray(new String[arrayList.size()]);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值