Collection集合详解
/*Collection
--List:元素是有序的,元素可以重复。因为该集合体系有索引。
---ArrayList;底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删很慢。线程不同步
---LinkedList;底层使用的是链表数据结构。特点增删的速度很快,查询很慢。
---Vector;底层是数组数据结构,线程同步。被ArrayList替代了。
--Set:元素是无序的,元素不可以重复
List:
特有方法。凡是可以操作角标的方法都是该体系特有的方法
增
add(index,element);
addAll(index,Collection);
删
remove(index);
改
set(index,element)
查
get(index);
subList(from,to)
listIterator();
List集合特有的迭代器。ListIterator是Iterator的子接口。
因为会发生ConcurrentModificationException异常。
所以,在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,
只能对元素进行判断,取出,删除的操作。
如果想要其他的操作如添加,修改等就需要使用其子接口,ListIterator.
该接口只能通过List集合的ListerIterator方法获取。
*/
import java.util.*;
class ListDemo
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void method()
{
ArrayList al=new ArrayList();
//添加一个数
al.add("java01");
al.add("java02");
al.add("java03");
sop("原集合是:"+al);
//在指定位置添加元素
al.add(1,"java09");
//删除指定位置的元素
//al.remove(2);
//修改元素
//al.set(2,"java007");
//通过角标获取元素
sop("get(1):"+al.get(1));
sop("修改之后的集合是:"+al);
for(int x=0;x<al.size();x++)
{
System.out.println("al("+x+")="+al.get(x));
}
Iterator it=al.iterator();
while(it.hasNext())
{
sop("next:"+it.next());
}
//通过indexof获取对象的位置
sop("index="+al.indexOf("java02"));
List sub=al.subList(1,3);
sop("sub"+sub);
}
public static void main(String[] args)
{
//演示列表迭代器
ArrayList al=new ArrayList();
//添加一个数
al.add("java01");
al.add("java02");
al.add("java03");
sop(al);
ListIterator li=al.listIterator();
while(li.hasNext())
{
Object obj=li.next();
if(obj.equals("java02"))
//li.add("java009");
li.set("java006");
}
sop(al);
/*
//在迭代过程中,准备添加或者删除元素
Iterator it=al.iterator();
while(it.hasNext())
{
//sop("next:"+it.next());
Object obj=it.next();
if(obj.equals("java02"))
//al.add("java008");
it.remove();//将java02的引用从集合中删除
sop("obj="+obj);
}*/
}
}
Collection集合详解的更多相关文章
- 集合详解之 Collection
集合详解之 Collection 先来看看集合的继承关系图,如下图所示: 其中: 外框为虚线的表示接口,边框为实线的表示类: 箭头为虚线的表示实现了接口,箭头为实线的表示继承了类. 为了方便理解,我隐 ...
- Java 集合详解
一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...
- Java集合详解8:Java的集合类细节精讲
Java集合详解8:Java集合类细节精讲 今天我们来探索一下Java集合类中的一些技术细节.主要是对一些比较容易被遗漏和误解的知识点做一些讲解和补充.可能不全面,还请谅解. 本文参考:http:// ...
- Java集合详解3:Iterator,fail-fast机制与比较器
Java集合详解3:Iterator,fail-fast机制与比较器 今天我们来探索一下LIterator,fail-fast机制与比较器的源码. 具体代码在我的GitHub中可以找到 https:/ ...
- 【转载】Java 集合详解
转载:https://www.cnblogs.com/ysocean/p/6555373.html 一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段 ...
- Java集合详解8:Java集合类细节精讲,细节决定成败
<Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...
- Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同
<Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...
- Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
<Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...
- Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
<Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...
随机推荐
- 网站开发进阶(六)JSP两种声明变量的区别
JSP两种声明变量的区别 在JSP中用两种声明变量的方法,一种是在<%! %>内,一种是在<% %>内.他们之间有什么区别呢?我们直接看一个JSP文件来理解. 代码如下: &l ...
- JNI技术简介-android学习之旅(92)
分为5步 !!!注意本地方法是java中的方法,本地函数指的是c语言中的对应函数 1.在java类中声明本地方法 2.使用javah命令,生成包含jni本地函数原型的头文件 3. 实现jni本地函数 ...
- SharePoint 开发TimerJob 介绍
项目需要写TimerJob,以前也大概知道原理,不过,开发过程中,还是遇到一些问题,网上看了好多博客,也有写的灰常好的,不过,自己还是想再写一下,也算是给自己一个总结,也算给大家多一个参考吧. Tim ...
- rails项目编写中的一些小技巧小心得
1. 如果form中有数据要传回服务器可以用隐藏属性的控件: form_for(xxx) do |f| f.hidden_field :xxx,value:xxx end 2. 如果你需要一些信息放在 ...
- jasper(二):制作饼状图和柱状图
在新建一个框架之后 我们也是要执行 add dataset,来添加一个链接数据库的语句,因为这是个饼状图,所以要用group by 全部放入右边的框架 点完成 接下来,就是要创建饼状图,就要点击 窗口 ...
- 百度java开发面试题
第一面 项目: 1.找一个项目,介绍下情况.其中遇到了什么问题,每种问题怎么样的解决方案. 算法题: 2.一个排好序的数组,找出两数之和为m的所有组合 3.自然数序列,找出任意连续之和等于n ...
- Day8 面向对象反射 item方法 打印对象信息__str__ 构析方法__del__ 程序的异常处理
反射:通过字符串来访问到所对应的值(反射到真实的属性上). eg: class Foo: x=1 def __init__(self,name): self.name=name def f1(self ...
- Ubuntu系统下配置IP地址方法介绍
配置IP方式有两种: 1.通过命令直接配置 sudo ifconfig eth0 IP地址 netmask 子网掩码------配置IP地 sudo route add default gw 网关-- ...
- Windows下MySQL重装引起问题的解决
解决了Plugin 'InnoDB' init function returned error问题和error1405那个安全设置密码登陆问题,我个人觉得关键点在于删除C:/Documents and ...
- uwsgi 服务 invalid request block size: 4161 (max 4096)...skip问题的解决
问题报错: invalid request block size: 4161 (max 4096)...skip 问题原因:默认的uwsgi分配一个小的buffer(4k)来接收每个请求的头信息,如果 ...