Java List相关用法

  • 1. subList
  • 2. Queue接口
  • 3. Deque接口
  • 4. List常用算法
  • 5. Collections.sort方法
  • 6. Comparator接口

1. subList

List的subList用于获取子List,由于二者公用相同的存储空间,所以,对subList的操作,会影响到List。

List<E> subList(int fromindex, toindex);
//两参数分别到要获取对象位置的上下标,包括上标不包括下标志。
如:
List<Integer> subList = list.subList(2,10);

2. Queue接口

使用LinkedList来实现Queue接口。
Queue(队列):具有先进先出存储结构。

Queen<String> quene = new LinkedList<String>();

该接口常用的方法有:

//讲一个对象添加至队尾
boolean affer(E, e);
//从队首删除并返回一个元素
E poll();
//返回队首的元素,但不删除
E peek();

3. Deque接口

Deque接口为Queue的子接口,为双向队列。
使用LinkedList实现Dueue接口。
也可将其设定为单进单出,这样形成另一种存储结构,栈:后进先出。进栈push,出栈pop。

String str = "ABCDEFG";
Dueue<Charactor> stack = new LinkedList<Charactor>();
for(int i=0; i<str.length(); i++){stack.push(str.charAt(i));
}
System.out.println(stack);
///输出结果:[GFEDCBA]

可用peek判断栈是否为空。当栈为空时,返回null。

while(stack.peek()!=null){System.out.println(stack.pop());
}
//输出结果:GFEDCBA

4. List常用算法

Comparable接口:用于比较对象的大小关系。

//接口定义:
public interface Compatable<T>{public int conpataTo(T o);
}
//接口实现
//Point类实现该接口
public class Point inplements Comparable<Point>{private x; private y;//根据原点距离判断大小public int comparaTo(T o){int r = x*x + y*y;int r1 = o.x*o.x + o.y*o.y;return r-r1;}public boolean equals(Object obj){if(obj instanceof Point){Point p = (Point)obj;return p.x==x && p.y==y;}elsereturn false;}
}

注意:在编写comparaTo方法后,也要编写其对应的equals方法。使得二者对应。

5. Collections.sort方法

对集合元素排序,但是集合对象需要实现Comparable接口。
因为sort方法是调用Comparable接口中的comparaTo方法进行比较。
例:

//其中,Point类已经实现Comparable接口
List<Point> list = new ArrayList<Point>();
list.add((1,2));
list.add((2,3));
list.add((1,5));
Collections.sort(list);
System.out.println(list);
//输出结果:[(1,2),(2,3),(1,5)]

6. Comparator接口

一旦Java实现Comparator接口,其比较逻辑就被确定,如果要临时改变比较规则,则采用Comparator接口回调的方式。

// 接口定义
public interface Comparator<T>{public int compara(T o1, T o2);
}

Comparator回调

List<Point> list = new ArrayList<Point>();
list.add((1,2));
list.add((2,3));
list.add((3,5));
Collections.sort(list, new Comparator<Point>(){//compara方法实现比较x坐标的大小public int compara(Point o1, Point o2){return o1.getX() - o2,getX();}});
System.out.println(list);
//输出结果:[(1,2),(2,3),(3,5)]

Java List相关用法相关推荐

  1. Java中Date各种相关用法

    Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD:   Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...

  2. Java多线程相关的几十个问题

    转载来源:http://www.cnblogs.com/HadesFX/p/5333810.html , https://www.cnblogs.com/HadesFX/p/5333820.html ...

  3. Nodejs 文件 与 路径 相关用法实例解析

    Nodejs 文件 与 路径 相关用法 CSDN用户名:jcLee95 邮箱:291148484@163.com 原创不易,感谢点赞支持. 1.路径 (1)引入path模块 const path = ...

  4. slf4j log4j logback关系详解和相关用法 【by Sinte-Beuve】

    slf4j log4j logback关系详解和相关用法 slf4j log4j logback的关系 The Simple Logging Facade for Java是什么? log4j和log ...

  5. JAVA servlet doFilter()用法

    JAVA servlet doFilter()用法 Filter也就是java中的过滤器filter,联想到现实中的过滤器其实我们很容易想到它存在的意义和功能.但实际上总会有一些出入,本文我们就来详细 ...

  6. cal java中的用法_Java中static用法

    Java中static用法 转自 http://blog.pfan.cn/sword2008/13772.html 一.static 请先看下面这段程序: public class Hello{ pu ...

  7. 四种Java线程池用法解析

    四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...

  8. 获取Java系统相关信息

    1 package com.test; 2 3 import java.util.Properties; 4 import java.util.Map.Entry; 5 6 import org.ju ...

  9. 2020-12-17 【 java优先队列的用法】

    java优先队列的用法 peek是top() 只取最上面的元素 poll是pop() 弹出 add是添加 push 类的比较器,相对于仿函数 struct cmp{ bool operator ()( ...

最新文章

  1. 看板中的WIP限制思想 1
  2. 题目1254:N皇后问题(DFS)
  3. C语言程序可以没有main函数
  4. php 开发桌面应用,使用NW将开发的网站打包成桌面应用
  5. 用easyx画电子钟_实时钟表 · Joker/EasyX - Gitee.com
  6. 【Unity】制作圆形进度条
  7. python制作u盘病毒_只需十行代码,人人都可以用python实现USB病毒
  8. python xlwt用法_24.python中xlwt模块用法详解
  9. redis数据类型之HashSet
  10. Cousera - Deep Learning - 课程笔记 - Week 5
  11. Programming Languages PartA Week4学习笔记——SML函数式编程
  12. 淘宝直播小窗如何开启?怎么免费引流?
  13. android气泡样式图片,Android实现三角形气泡效果方式汇总
  14. 生活 or 办公——怎么能少了 PeakDo 毫米波无线投屏器呢
  15. 50个最有价值的数据可视化图表(推荐收藏)
  16. Android拼接合并图片生成长图
  17. 文华财经指标公式源码学习
  18. Tableau数据分析-Chapter13雷达图和凹凸图
  19. IBM 成立 | 历史上的今天
  20. 【Excel VBA】VBE

热门文章

  1. 前端自适应----单位rem
  2. java多线程批量读取文件(七)
  3. html中foreach遍历list,foreach遍历----for(object o: list)
  4. HTML表div布局,html使用列表 以及div的布局和table的布局
  5. thinkphp3.2.3 调用自定义模型提示找不到类_面试BAT必问的JVM,今天我们来说一说它类加载器的底层原理...
  6. void readstring( char s[] ); 怎样_char *s和char s[]
  7. 热式气体质量流量计检定规程_热式气体质量流量计基于热扩散原理
  8. c语言声明第一个学生的成绩,C语言课程设计报告--学生成绩管理系统
  9. DTC 2019 数据技术嘉年华·金融峰会(深圳站)来袭
  10. 高手如何应对复杂系统架构的演进