【博学谷学习记录】 超强总结,用心分享 | JavaSE笔记(六)

List集合

 List集合特点

有序:存储和取出的元素顺序一致;有索引∶可以通过索引操作元素 ;可重复∶存储的元素可以重复

List集合的特有方法

        list.add(0,"qqq");  //原来位置上的元素会往后挪一个索引
        System.out.println(list);
//      在list中有两个删除的方法,一个是删除指定元素(但是只删除第一次出线)返回是否删除成功,一个是删除指定索引返回删除的值
        String s = list.remove(0);
        System.out.println(s);
        System.out.println(list);
//       替换指定索引位置的值,并把被替换的值返回
        String s1 = list.set(0,"qqq");
        System.out.println(s1);
        System.out.println(list);
//        get获取指定索引位置元素
        String s2 = list.get(0);
        System.out.println(s2);

LinkedList

LinkerList的特有功能

LinkedList<String> list = new LinkedList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");

list.addFirst("qqq");
System.out.println(list);

list.addLast("www");
System.out.println(list);

String first = list.getFirst();
String last = list.getLast();
System.out.println(first+last);

String s = list.removeFirst();
String s1 = list.removeLast();
System.out.println(s+s1);
System.out.println(list);

Set集合

Set集合的概述和特点

可以去除重复

存取顺序不一致

没有带索引方法,所以不能使用普通for进行遍历,也不能通过索引来获取或者删除集合中的元素

TreeSet集合概述和特点

除了继承Set的特点之外,还可以按照规则对元素进行排序

public static void main(String[] args) {
    TreeSet<Integer> ts = new TreeSet<>();
    ts.add(5);
    ts.add(4);
    ts.add(3);
    ts.add(2);
    ts.add(1);

    System.out.println(ts);
}

输出:

所以如果TreeSet的泛型装的是自定义类型,那么我们要在自定义类型里指定排序规则,也就引入了以下排序方式

自然排序和比较器排序

自然排序

 

 所以首先在自定义类中实现comparable接口,并在接口的泛型中指定所使用的数据类型

然后在其中重写CompareTO方法

o.this表示依次遍历已经存进去的数

 如果自定义对象类中有多个元素,要考虑两个元素的排序,例如:

 

这里面this.name后跟着的compareTO是String方法里的方法

 比较器排序

 

 也就是在TreeSet构造时传递Comparator的实现类对象,重写compare方法。

两种比较方式小结:

 如果比如说要使用String字符串的排序方式,但是String类中已经实现了Compare方法,我们不能直接在String类中修改比较方法的时候 我们就要用比较器排序方法,在创建TreeSet对象 的时候,从写compare方法

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值