1:集合类,在java语言中的java.util包提供了一些集合类,这些集合类又被称作容器。

2:区别集合类和数组。(1)数组的长度是固定的,集合的长度是可变的。(2)数组是用来存放基本数据类型的,集合是用来存放对象的引用。

3 : 常用的集合有List集合,Set集合,Map集合。其中List集合和Set集合实现Collection接口。

4:Collection接口是层次结构中的根接口,构成Collection的单位,被称为元素。Collection接口通常不能直接使用,但是该接口提供了添加和删除元素的,管理数据的方法。由于List接口和Set接口都实现了Collection接口,因此这些方法对List集合和Set集合是通用的。

5:List集合是列表类型,以线性方式存储对象,因此可以通过对象的索引来操作对象。

6:List集合中的add(in index,Object obj)方法,用来向集合中的指定索引位置添加对象,集合的索引位置从0开始,其他对象的索引位置相对向后移动一位。

7:List集合中的set(int index,E element)方法用指定的元素替换列表中的指定位置的元素,返回以前在指定位置的元素。

案例如下,创建集合对象,并向集合中添加元素,通过Set方法修改集合中的元素,再通过add()方法向集合中添加元素,都是通过迭代器遍历集合元素的。

 package com.ning;

 import java.util.*;

 /**
*
* @author biexiansheng
*
*/
public class Demo { public static void main(String[] args) {
String a="A",b="B",c="C",d="D",e="E";//定义要插入集合的字符串对象
List<String> list=new LinkedList<String>();//创建List集合
list.add(a);//向集合中添加元素
list.add(b);
list.add(c);
Iterator<String> iter=list.iterator();//创建集合的迭代器
System.out.println("修改后 前集合 中的元素是:");
while(iter.hasNext()){
System.out.print(iter.next()+" ");
}
list.set(0,e);//将索引位置为0的对象修改为对象e
list.set(2,d);//将索引位置为2的对象修改为对象d
Iterator<String> it=list.iterator();//创建将集合对象修改后的迭代器对象
System.out.println();
System.out.println("修改后的集合中的元素是:");
while(it.hasNext()){//循环获取集合中的元素
System.out.print(it.next()+" ");
} } }


 package com.ning;

 import java.util.*;

 public class Demo01 {

     public static void main(String[] args) {
// TODO Auto-generated method stub
String a="A",b="B",c="C",d="D",e="E",apple="apple";//要添加到集合中的对象
List<String> list=new ArrayList<String>();//创建List集合对象
list.add(a);//对象a的索引位置为0
list.add(apple);//对象apple的索引位置为1
list.add(b);
list.add(apple);
list.add(c);
list.add(apple);
list.add(d);
list.remove(1);//remove(int index)用于移除集合中指定索引位置的对象
System.out.println("ArrayList集合中的元素:"+list);
System.out.println("apple第一次出现的索引位置:"+list.indexOf(apple));
System.out.println("apple最后一次出现的索引位置:"+list.lastIndexOf(apple));
System.out.println("b第一次出现的索引位置:"+list.indexOf(b));
System.out.println("b最后一次出现的索引位置:"+list.lastIndexOf(b));
System.out.println("***********************************");
//System.out.println("get()获得指定索引位置的对象:"+list.get(0)); } }

此两句话的使用结果对比显示:

list.remove(1);//remove(int index)用于移除集合中指定索引位置的对象

System.out.println("get()获得指定索引位置的对象:"+list.get(0));


1:要使用List集合,通常情况下需要声明为List类型,然后通过List接口的实现类来对集合进行实例化

2:List集合的实现类常用的有ArrayList与LinkedList

3:ArrayList类,该类实现了可变的数组,允许所有元素,包括null,可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或者删除对象的速度比较慢。List<String> list=new ArrayList<String>();

4:LinkedList类,该类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除对象,经常需要向集合中插入,删除对象时,使用LinkedList类实现的List集合的效率较高,但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率比较慢

List<String> list=new LinkedList<String>();

5:使用List集合时通常声明为List类型,可通过不同的实现类来实例化集合。

 package com.ning;

 import java.util.*;

 public class Demo04 {

     public static void main(String[] args) {
// TODO Auto-generated method stub
List list=new ArrayList();//创建集合对象
int i=(int)(Math.random()*(list.size()-1));//获得0-2之间的随机数
list.add("a");//向集合中添加元素
list.add("b");
list.add("c");
System.out.println("随机获取数组中的元素:"+list.get(i));//
list.remove(2);//将指定索引位置的元素从集合中移除
System.out.println("将索引是'2'的元素从数组中移除后,数组中的元素是:");
for(int j=0;j<list.size();j++){//循环遍历数组
System.out.print(list.get(j)+" ");
} } }


 package day13;

 import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator; public class Demo03 { public static void main(String[] args) {
// TODO Auto-generated method stub
List list=new ArrayList(); list.add("a");
list.add("b");
list.add("c");
list.add("d");
System.out.print(list+" ");
System.out.println("集合的长度是:"+list.size());
//list.remove("a");
System.out.println();
System.out.println("删除后集合的长度是:"+list.size());
System.out.print(list+" ");
System.out.println();
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+" ");
}
System.out.println();
System.out.println("***********************");
ListIterator it=list.listIterator();
while(it.hasNext()){
String str=(String)it.next();
if("c".equals(str)){
it.add("aaa");
}
}
System.out.println(list); } }

此案例的主要是说了一下listIterator的用法,因为好多书上写的listIterator的解释很生硬。用来获得一个包所有对象的ListIterator列表迭代器。其实这个方法的用法就是在迭代的时候可以进行修改List集合。不然报这个错误。java.util.ConcurrentModificationException

当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。


至此,Collection接口下的List接口学习就差不多了,详细的还请自己下去参考资料,勤加练习,熟练应用和掌握。

最新文章

  1. java设计模式之建造者模式
  2. Daily Scrum02 12.15
  3. [ASP.NET 5]终于解决:Unable to load DLL &#39;api-ms-win-core-localization-obsolete-l1-2-0.dll&#39;
  4. 初探百度F.I.S — 由工具到解决方案
  5. Android课程---final关键字
  6. iOS-图文表并茂,手把手教你GCD
  7. [VB.NET]拖动操作的技术基础
  8. 【POJ】3523 The Morning after Halloween
  9. JM编解码264
  10. iOS图片设置圆角
  11. Windows下用Composer引入官方GitHub扩展包
  12. MSH:一个简单SH工具实现
  13. golang - gob与rpc
  14. 简单聊聊WebSocket
  15. Git(查看修改记录)
  16. MySQL报错总结
  17. 06 元祖 字典 集合set
  18. 2018 省选 D1T2 IIIDX
  19. MongoDB数据库遭大规模勒索攻击,被劫持26000多台服务器 #精选GITHUBMYSQL
  20. 压力测试 JMeter3.3

热门文章

  1. Bug库
  2. C++模板分离
  3. java-并发-保护代码块
  4. 关于WM_GETTEXT的应用
  5. 为Python安装pymssql模块来连接SQLServer
  6. CGContextRef 画线简单用法
  7. 使用display:table来解决一些问题
  8. ssm简单配置
  9. Oracle解锁与加锁(HR用户为例)
  10. VMware创建Linux虚拟机并安装CentOS(一)