JAVA知识点总结(六)(集合)
第十九章 集合
一、数组弊端:
数组长度是固定的,无法继续添加元素。
二、什么是集合:
Java提供一个集合类,它的长度是可以改变的,能储存任意的对象,长度随着元素的增加而增加。
三、集合和数组的区别:
1.数组:能存放引用数据类型和基本数据类型。
2.集合:只能存放引用数据类型(对象),即使存放基本数据类型,也会自动帮你装箱,把基本数据类型转换为引用数据类型。
3.数组长度是固定的,集合长度能够改变。
四、什么时候用数组,什么时候用集合?
1.如果元素个数固定,用数组
2.对元素进行增删改查操作时,使用集合。
五、集合类:
1、创建一个集合:
Collection c = new ArrayList();
2、向集合内添加元素:
Collection c = new ArrayList();
boolean b1 = c.add("abc");
boolean b2 = c.add(10);
boolean b3 = c.add(true);
3、删除集合内指定元素:
ArrayList c2 = new ArrayList();
c2.add("a");
3 c2.add("b");
c2.add("c");
System.out.println(c2); //从集合中移除指定元素
c2.remove("b");
System.out.println(c2);
4、判断一个集合是否为空:
//判断一个集合是否为空
System.out.println(c2.isEmpty());
5、获取集合的长度:
// 获取集合当中的长度
System.out.println(c2.size());
7、清空集合内的所有元素:
// 清空集合内所有元素
c2.clear();
System.out.println(c2);
8、合并两个集合:
c1.addAll(c2);
9、从c1中删除两个集合的交集:
c1.removeAll(c2);
10、判断c1中是否完全包含c2:
//boolean res = c1.containsAll(c2);
//System.out.println(res);
11、取交集,将交集的值赋值给c1:
boolean b1 = c1.retainAll(c2);
System.out.println(b1);
System.out.println(c1);
12、通过数组遍历集合:
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
//将集合转化为数组,所有元素提升为Object类型
Object []arr = c.toArray();
for(int i = 0;i<arr.lengthi;i++){
System.out.println(arr[i]);
}
六、ArrayList集合:
1、使用迭代器遍历集合:
List list = new ArrayList();
list.add("a");
list.add("2");
list.add("c");
list.add("d"); //1.遍历集合
Iterator it = list.iterator();
while(it.hasNext()){
System.out.pringln(it.next());
}
}
2、并发修改异常:
在迭代集合过程中,是不允许修改集合结构的,比如添加,删除元素(个数的改变),如果改变了,就会发生并发修改异常。
3、List 当中特有的迭代器,在删除修改时,不会造成并发修改异常。
ListIterator it = list.listIterator();
4、去除List集合中的重复元素:
static ArrayList getSingleEle(ArrayList list) {
// 1.创建一个新的集合
ArrayList newa1 = new ArrayList();
// 2.将一次取出每一个元素
Iterator itr = list.iterator();
while (itr.hasNext()) {
Object obj = itr.next();
// 3.每次取出元素都会判断新集合中已经有该元素
// 4.如果是已有元素,不把元素存放到新集合中
if (!newa1.contains(obj)) {
newa1.add(obj);
}
}
//System.out.println(newa1);
return newa1;
}
5、去除集合内重复的元素为对象时,重写equals方法:
class Student {
String name;
int age;
Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
// 做对象的比较,不想让其对比地址,必须要覆盖equals 根据自己的需求来定义什么时候相等(也可以通过快速生成)
public boolean equals(Object obj) {
Student stu = (Student) obj;
return this.name.equals(stu.name) && this.age == stu.age;
}
}
6、LinkedList集合:
LinkedList list = new LinkedList();
list.add("a");
list.add("b");
list.add("c");
System.out.println(list);
7、Vector集合:
public static void main(String[] args) {
//Vector 只是在内部进行了加锁,更加的安全
Vector v = new Vector();
v.add("a");
v.add("b");
v.add("c");
System.out.println(v);
}
}
JAVA知识点总结(六)(集合)的更多相关文章
- Java 面试知识点解析(六)——数据库篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- JAVA中所有与集合有关的实现类都是这六个接口的实现类
JAVA中所有与集合有关的实现类都是这六个接口的实现类. Collection接口:集合中每一个元素为一个对象,这个接口将这些对象组织在一起,形成一维结构. List接口代表按照元素一定的相关顺序来组 ...
- Java OOP——第六章 框架集合
1.集合框架包含的主要内容及彼此之间的关系: 图1: 集合框架:是为了表示和操作集合而统一规定的一种统一的标准体系结构. 包含三大块的内容:对外的接口.接口的是实现和对 ...
- 学Android开发,入门语言java知识点
学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...
- 给Java新手的一些建议----Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...
- java知识点梳理
网络搜索结果,出处不详,仅供参考 对于刚刚接触Java的人,java基础知识技术点繁多,那么gkstk小编为大家汇总最全java知识点如下,仅供大家参考学习! 1. JVM相关(包括了各个版本的特性) ...
- java学习笔记之集合家族2
集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...
- 【原】Java学习笔记026 - 集合
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...
- typora中文版官方免费快速下载以及Markdown的一些常用语法、Java知识点
typora下载 链接:https://某度云盘的域名/s/1geD1APxnyV3gogYW3E08bQ 密码:8fdp 把某度云盘的域名进行替换 1.标题 # 标题1 ## 标题2 ### 标题3 ...
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
原文出处:CSDN邓帅 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行 ...
随机推荐
- Python:日期表达的转换(day of year & year month day)
我们常用的日期格式是“年月日”型的,即year-month-day,比如今天是2019年9月14日,2019-09-14. 然而,有些地方,比如遥感图像下载的命名里面,为了数据表示方便,常常是doy( ...
- linux常用的镜像(centos、kali、redhat等)官方下载地址
常用的linux版本: Redhat:https://developers.redhat.com/topics/linux/ Centos:https://www.centos.org/downloa ...
- ASP.NET如何实现断点续传的上传、下载功能?
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...
- UINX标准C - 进程管理
进程与程序的关系: 1.程序就是存储在磁盘上可执行的二进制文件, 2.进程是一个正在执行的的程序,不过一个程序可能存在多个进程实例. 查看进程中的pid和获取pid(进程号) 1.终端指令:ps a ...
- Mui去掉滚动条:
/////////去掉滚动条mui.plusReady(function(){plus.webview.currentWebview().setStyle({scrollIndicator:'none ...
- Mac item2常用快捷键
记录一下iterm 2 快捷键,用于备忘! 标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:co ...
- 【spring boot 学习笔记】日志相关
1. 如何启用日志? maven依赖中添加:spring-boot-starter-logging <dependency> <groupId>org.springframew ...
- python双划线类型
通过__开始的属性感觉分为两种类型: 利用dir调用的时候: < build in x object at 0x01F116B0>:这种貌似和运算符重载有关系,用户如果需要的话可以重写该函 ...
- mysql 安装相关
Mysql 是基于C/S端的管理文件的服务器软件. Mysql简单分为两个软件:1服务器软件 2客户端软件 对于服务器软件中的socket服务器是一只开着的,客户端需要连接,并且还有创建文件删除文件等 ...
- git创建公钥匙
目的: 使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(git的remote要使用SSH地址) 1.打开终端进入.ssh目录输入当下命令 cd ~/.ssh 如果.ssh文件夹不存在,执 ...