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是一次添加一对元素. ...
随机推荐
- 《Effective C++》阅读总结(三):资源管理
C++中的资源管理非常重要,在将资源加载到内存后,便可以使用资源了,当我们不再需要资源时,我们要保证其正确的释放,才能将其占用的内存空间归还给操作系统,不正确的释放很容易造成内存泄漏.本章以资源管理类 ...
- C# List转String的办法
2022年5月28日 初始记录 代码: String.Join(",", List.ToArray());
- go-zero微服务实战系列(七、请求量这么高该如何优化)
前两篇文章我们介绍了缓存使用的各种最佳实践,首先介绍了缓存使用的基本姿势,分别是如何利用go-zero自动生成的缓存和逻辑代码中缓存代码如何写,接着讲解了在面对缓存的穿透.击穿.雪崩等常见问题时的解决 ...
- java中JVM和JMM之间的区别
一 jvm结构 jvm的内部结构如下图所示,这张图很清楚形象的描绘了整个JVM的内部结构,以及各个部分之间的交互和作用. 1 Class Loader(类加载器)就是将Class文件加载到内存,再说的 ...
- Jenkins + maven + svn 自动部署项目
1.安装Jenkins sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins. ...
- docker实时查看日志
docker logs -f --tail=10 fo-order -f : 查看实时日志 --tail=10 : 查看最后的10条日志. fo-order: 容器名称
- 7.Spark SQL
1.分析SparkSQL出现的原因,并简述SparkSQL的起源与发展. SparkSQL出现是因为关系数据库已经不能满足各种在大数据时代新增的用户需求.首先,用户需要在不同的结构化和非结构化数据中执 ...
- windows版anaconda+CUDA9.0+cudnn7+pytorch+tensorflow安装
1.Anaconda 首先下载Anaconda,它是一个开源的python发行版本,含有众多科学工具包,直接安装anaconda免除了许多包的手动安装,点击这里下载. 按照你的实际情况选择下载.下载完 ...
- .Net下极限生产力之efcore分表分库全自动化迁移CodeFirst
.Net下极限生产力之分表分库全自动化Migrations Code-First ## 介绍 本文ShardinfCore版本x.6.x.x+ 本期主角: - [`ShardingCore`](htt ...
- java面向对象编程---方法
二.方法 1.方法的重载 1.1 方法的签名 方法的唯一标识就是方法的签名:方法的名字和参数列表: 一个类中不能出现两个方法的签名完全一样的方法 1.2 方法的重载 方法名相同但参数列表不同称之为方法 ...