Java List相关用法
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相关用法相关推荐
- Java中Date各种相关用法
Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD: Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...
- Java多线程相关的几十个问题
转载来源:http://www.cnblogs.com/HadesFX/p/5333810.html , https://www.cnblogs.com/HadesFX/p/5333820.html ...
- Nodejs 文件 与 路径 相关用法实例解析
Nodejs 文件 与 路径 相关用法 CSDN用户名:jcLee95 邮箱:291148484@163.com 原创不易,感谢点赞支持. 1.路径 (1)引入path模块 const path = ...
- slf4j log4j logback关系详解和相关用法 【by Sinte-Beuve】
slf4j log4j logback关系详解和相关用法 slf4j log4j logback的关系 The Simple Logging Facade for Java是什么? log4j和log ...
- JAVA servlet doFilter()用法
JAVA servlet doFilter()用法 Filter也就是java中的过滤器filter,联想到现实中的过滤器其实我们很容易想到它存在的意义和功能.但实际上总会有一些出入,本文我们就来详细 ...
- cal java中的用法_Java中static用法
Java中static用法 转自 http://blog.pfan.cn/sword2008/13772.html 一.static 请先看下面这段程序: public class Hello{ pu ...
- 四种Java线程池用法解析
四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...
- 获取Java系统相关信息
1 package com.test; 2 3 import java.util.Properties; 4 import java.util.Map.Entry; 5 6 import org.ju ...
- 2020-12-17 【 java优先队列的用法】
java优先队列的用法 peek是top() 只取最上面的元素 poll是pop() 弹出 add是添加 push 类的比较器,相对于仿函数 struct cmp{ bool operator ()( ...
最新文章
- 看板中的WIP限制思想 1
- 题目1254:N皇后问题(DFS)
- C语言程序可以没有main函数
- php 开发桌面应用,使用NW将开发的网站打包成桌面应用
- 用easyx画电子钟_实时钟表 · Joker/EasyX - Gitee.com
- 【Unity】制作圆形进度条
- python制作u盘病毒_只需十行代码,人人都可以用python实现USB病毒
- python xlwt用法_24.python中xlwt模块用法详解
- redis数据类型之HashSet
- Cousera - Deep Learning - 课程笔记 - Week 5
- Programming Languages PartA Week4学习笔记——SML函数式编程
- 淘宝直播小窗如何开启?怎么免费引流?
- android气泡样式图片,Android实现三角形气泡效果方式汇总
- 生活 or 办公——怎么能少了 PeakDo 毫米波无线投屏器呢
- 50个最有价值的数据可视化图表(推荐收藏)
- Android拼接合并图片生成长图
- 文华财经指标公式源码学习
- Tableau数据分析-Chapter13雷达图和凹凸图
- IBM 成立 | 历史上的今天
- 【Excel VBA】VBE
热门文章
- 前端自适应----单位rem
- java多线程批量读取文件(七)
- html中foreach遍历list,foreach遍历----for(object o: list)
- HTML表div布局,html使用列表 以及div的布局和table的布局
- thinkphp3.2.3 调用自定义模型提示找不到类_面试BAT必问的JVM,今天我们来说一说它类加载器的底层原理...
- void readstring( char s[] ); 怎样_char *s和char s[]
- 热式气体质量流量计检定规程_热式气体质量流量计基于热扩散原理
- c语言声明第一个学生的成绩,C语言课程设计报告--学生成绩管理系统
- DTC 2019 数据技术嘉年华·金融峰会(深圳站)来袭
- 高手如何应对复杂系统架构的演进