java-Collection,List简单使用与方法/(集合使用-中)
1.1集合只存放引用类型的元素并且集合存放的时元素的引用(地址)
1.2新循环遍历集合
Collection c = new ArrayList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
/*
* 新循环不是新的语法,jvm并不认可新循环。
* 新循环是编译器认可的,当编译器发现在使用新循环遍历集合时,会将代码改变为使用迭代器遍历,所以使用新循环遍历集合的过程中是不能通过集合的方法增删元素的。
*
*/
for (Object object : c) {
String str = (String)object;
System.out.println(str);
}
1.3集合的操作
boolean addAll(collection c) 将给定的集合中的元素存入到当前集合中 当前集合元素发生了变化则返回true
boolean containsAll(Collection c) 判断当前集合是否包含给定集合中的所有元素
boolean removeAll(Collection c) 删除当前集合中与给定集合的相同元素
1.4遍历集合--集合提供统一的遍历元素的方式:迭代器模式
集合提供了用于获取遍历当前集合元素的方法:
java.util.Iterator
Iteartor iterator()迭代器的接口,规定了遍历集合的方法,遵循的模式为:问,取,删的步骤,其中删除元素不是必须操作。不同的集合实现类都提供了一个可以遍历自身的迭代器实现类。我们无需记住它们的名字,当他们的Iterator看待即可。
boolean hasNext()判断集合是否还有元素可以遍历
E next() 取出集合下一个可以遍历的元素
在使用迭代器遍历集合元素的过程中,不能通过集合的方法增删元素否则会引发迭代器遍历集合的异常,但是迭代器的remove能删除通过next方法取出的元素
1.5新循环--新循环又称为:增强for循环,for each,新循环的作用是用来遍历集合或数组-----新循环是JDK1.5之后推出的一个新特性
使用新循环遍历集合:新循环并非新的语法,JVM并不认可新循环。新循环是编译器认可的,当编译器发现在使用新循环遍历集合时,会将代码改变为使用迭代器遍历。所以使用新循环遍历集合的过程中是不能通过集合的方法增删元素的。如果在新循环中删除元素会抛出异常。
1.6泛型--1.5之后推出的一个特性,泛型是编译器认可泛型的实际类型是Object,在使用的时候编译器会进行检查或自动造型。当对泛型变量赋值时,编译器检查是否符合类型要求获取泛型值时,编译器会补充自动造型的代码。不指定泛型则默认认为object。泛型用来规定集合中的元素类型
1.7List_get_set--java.util.List
List是Collection的子类型接口。是可重复集,并且有序,提供了一套可以根据下标操作元素的方法。
常用实现类:
java.util.ArrayList:数组实现,查询效率高
java.util.LinkedList:链表实现,增删元素效率高尤其是首尾增删元素。
E get(int index) 将指定下标所对应的元素返回
E set(int index,E e) 将给定元素替换集合中指定位置的元素并将被替换元素返回。
1.8List_add_remove:List提供了一对重载的add,remove方法也可以通过下标操作元素删除方法会返回一个删除的元素。
1.9获取List子集:List<E> subList(int startindex,int endindex) 截取集合中指定位置的元素,并返回截取的元素;操作获取的子集的时候就等于操作原有集合
1.10集合转换为数组 ---Collection中提供了将当前集合转换为一个数组的方法
E[] array= c.toArray(new E[c.size()]);将集合转换为数组,传一个泛型数组并设置长度,如果设置长度不够也会返回一个刚好和元素相等的数组,如果参数长度大于原有数组,则返回输入长度的数组,没有元素的位置为null。
1.11数组转换为集合---List<String> list = Arrays.asList(array);将数组转化为集合,操作返回后的集合等于操作原来的数组,并且不能增删元素,如果想增加元素需要新建一个数组将返回数组的值传入并操作。
List<String> list1 = new ArrayList<String>(list);这个方法可以在创建新数组的同时将原有数组的元素添加进来。
我是初学者,如有更新不好的,欢迎这位大神指出,谢谢大家!
更多精彩以后更新,转载注明!
java-Collection,List简单使用与方法/(集合使用-中)的更多相关文章
- Bootstarp的安装以及简单的使用方法(pycharm中)
一.安装 首先打开Bootstarp的官网:https://v3.bootcss.com 下载完成后,解压压缩包,把解压后的文件导入pycham中 在HTML页面中的style中导入bootstrap ...
- java线程的简单实现及方法
java线程: 线程是一个程序内部的顺序控制流. cpu实际上在一个时间点上,只执行一个.只不过我们把cpu分成了多个时间片,由于速度很快,我们看起来像是多个线程.. 就像你的时间分成几片,这样 整体 ...
- Java实现一个简单的缓存方法
缓存是在web开发中经常用到的,将程序经常使用到或调用到的对象存在内存中,或者是耗时较长但又不具有实时性的查询数据放入内存中,在一定程度上可以提高性能和效率.下面我实现了一个简单的缓存,步骤如下. 创 ...
- Java - Collection 高效的找出两个List中的不同元素
如题:有List<String> list1和List<String> list2,两个集合各有上万个元素,怎样取出两个集合中不同的元素? 方法1:遍历两个集合 public ...
- java反射的补充:桥接方法以及Spring中一些工具类
在上一篇博文中:http://www.cnblogs.com/guangshan/p/4660564.html 源码中有些地方用到了 this.bridgedMethod = BridgeMethod ...
- 【java基础 13】两种方法判断hashmap中是否形成环形链表
导读:额,我介绍的这两种方法,有点蠢啊,小打小闹的那种,后来我查了查资料,别人都起了好高大上的名字,不过,本篇博客,我还是用何下下的风格来写.两种方法,一种是丢手绢法,另外一种,是迷路法. 这两种方法 ...
- Java Collection集合方法
一.简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.uti ...
- Java集合框架中List接口的简单使用
Java集合框架可以简单的理解为一种放置对象的容器,和数学中的集合概念类似,Java中的集合可以存放一系列对象的引用,也可以看做是数组的提升,Java集合类是一种工具类,只有相同类型的对象引用才可以放 ...
- Java collection 的一些介绍 集合
collections主要提供一些,排序的算法,随机的,反向的, collection 是容器的祖先接口 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应 ...
- 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...
随机推荐
- uni-simple-router
目录 uni-simple-router 一.快速上手 扩一:webpack插件之DefinePlugin 扩二:uni-read-pages 如何获取pages.json中的路由 二.H5模式 2. ...
- 《HALCON数字图像处理》第四章笔记
目录 第四章 HALCON数据结构 HALCON Image图像 图像通道 HALCON Region区域 Region的初步介绍 Region的点与线 Region的行程 Region的区域特征 H ...
- Eureka服务下线太慢,电话被告警打爆了
某年某月的某一天,就像一张破碎的脸... 错了,重来. 某天,忽然发现大量的告警,经过多番调查研究考察(此处省略3000字),发现是由于 Eureka 服务下线太慢,而仍然有大量的请求打进来导致的报错 ...
- 在sqlbolt上学习SQL
在sqlbolt上学习SQL 该网站能够学习sql基础,并且能在网页中直接输入sql语句进行查询. 学习网站原网址https://sqlbolt.com/(!部分指令该网站不支持,且存在一些bug!) ...
- alertmanager集群莫名发送resolve消息的问题探究
alertmanager集群莫名发送resolve消息的问题探究 术语 告警消息:指一条告警 告警恢复消息:指一条告警恢复 告警信息:指告警相关的内容,包括告警消息和告警恢复消息 问题描述 最近遇到了 ...
- Sentiment analysis in nlp
Sentiment analysis in nlp The goal of the program is to analysis the article title is Sarcasm or not ...
- bat-windows系统激活
激活命令 slmgr -ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D slmgr -skms kms.03k.org slmgr -ato slmgr -dlv 激活异常处理方法 ...
- NC23046 华华教月月做数学
NC23046 华华教月月做数学 题目 题目描述 找到了心仪的小姐姐月月后,华华很高兴的和她聊着天.然而月月的作业很多,不能继续陪华华聊天了.华华为了尽快和月月继续聊天,就提出帮她做一部分作业. 月月 ...
- NC14583 糖糖别胡说,我真的不是签到题目
NC14583 糖糖别胡说,我真的不是签到题目 题目 题目描述 从前,有 \(n\) 只萌萌的糖糖,他们分成了两组一起玩游戏.他们会排成一排,第 \(i\) 只糖糖会随机得到一个能力值 \(b_i\) ...
- Java 内存模型,或许应该这么理解
大家好,我是树哥. 在前面一段时间,我连续写了几篇关于并发编程的文章: 从 CPU 讲起,深入理解 Java 内存模型! - 陈树义的博客 深入理解 happens-before 原则 - 陈树义的博 ...