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是一次添加一对元素. ...
随机推荐
- 关于c#多线程中的几个信号量
信号量在c#多线程通信中主要用来向阻塞的线程传达信号从而使得阻塞线程继续执行 多线程信号(线程交互):通常是指线程必须等待一个线程或者多个线程通知交互(释放信号)才可以继续执行 在c#中信号量主要有这 ...
- docker安装mysql,开启主从
docker pull mysql:5.7 创建目录/mydata/mysql/log /mydata/mysql/conf /mydata/mysql/data docker run -itd -- ...
- 从单例谈double-check必要性,多种单例各取所需
theme: fancy 前言 前面铺掉了那么多都是在讲原则,讲图例.很多同学可能都觉得和设计模式不是很搭边.虽说设计模式也是理论的东西,但是设计原则可能对我们理解而言更加的抽象.不过好在原则东西不是 ...
- Wireshark学习笔记(一)常用功能案例和技巧
@ 目录 常用功能 1.统计->捕获属性 2.统计->协议分级 3.过滤包Apply as filter E1:过滤出特定序号的包 E2:过滤出某IP地址或端口 E3:导出php文件 E4 ...
- 从局部信息推测基恩士的Removing BackGround Information算法的实现。
最近从一个朋友那里看到了一些基恩士的资料,本来是想看下那个比较有特色的浓淡补正滤波器的(因为名字叫Shading Correction Filter,翻译过来的意思有点搞笑),不过看到起相关文档的附近 ...
- 【Redis】ziplist压缩列表
压缩列表 压缩列表是列表和哈希表的底层实现之一: 如果一个列表只有少量数据,并且数据类型是整数或者比较短的字符串,redis底层就会使用压缩列表实现. 如果一个哈希表只有少量键值对,并且每个键值对的键 ...
- Oracle账户被锁(the account is locked)
问题: 安装好Oracle之后用scott登录报错:ERROR:ORA-28000:the account is locked 解决方案: Win+R打开命令行输入:sqlplus 使用system账 ...
- 2022年最强八股文《码出八股文-斩出offer线》
宝剑锋从磨砺出,梅花香自苦寒来,大家好,我是小码哥 整理好的八股文终于完成了,希望看完对大家面试有所收获! 目录: 基础篇 javaOOP面试题 java集合/泛型面试题 java异常面试题 java ...
- kubernetes之常用核心资源对象
部门产品线本身是做DEVOPS平台,最近部署架构也在往K8S上靠了,不得不学一下K8S.自己搭建了K8S集群与harbor仓库来学习. 1.kubernetes之常用核心资源对象 1.1.K8s服务部 ...
- linux web漏洞扫描arachni
1. 下载arachni https://www.arachni-scanner.com/download/下载Linux x86 64bit 2. 上次解压直接使用 tar xzf arachni- ...