1.概念:Java容器类类库的用途是保存对象,容器中不能存储基本数据类型,必须是对象(引用数据类型)

2.为什么需要容器:主要是在以数组作为数据的存储结构中,其长度难以扩充,同时数组中元素类型必须相同。而容器可以弥补数组的这两个缺陷

3.容器框架
Java集合框架提供了一套性能优良、使用方便的接口和类,
它们位于 java.util 包中
存放在集合中的数据,被称为元素(element)

各接口的特点
Collection 接口存储一组不唯一(可以重复),无序的对象
List 接口存储一组不唯一,有序(索引顺序)的对象
Set 接口存储一组唯一,无序的对象

4.ArrayList

List承诺可以将元素维护在特定的序列中。List接口在Collection的基础上加入了大量的方法,使得可以在List中间可以插入和移除元素

 import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner; public class TestArrayList {
public static void main(String[] args) {
//创建集合对象, 接口 new 实现类
List list=new ArrayList(); //(1)添加add (Object obj)
list.add("hello");
list.add(123);//自动装箱(基本数据类型自动转对应的包装类)
list.add(new Scanner(System.in)); //(2)集合中元素的个数 size()
System.out.println(list.size());//
System.out.println("集合是否为空:"+list.isEmpty());//false //(3)addAll(Collection c)
List list2=new ArrayList();
list2.add("hello");
list2.add(123);
list.addAll(list2);
System.out.println("list集合中元素的个数:"+list.size());//
System.out.println(list);
//[hello, 123, java.util.Scanner[...], hello, 123] //(4)删除
System.out.println("根据对象去删除:");
list.remove("hello");
System.out.println(list);//[123, java.util.Scanner[...], hello, 123]
//list.remove(123);//认为123是索引
list.remove(new Integer(123));
System.out.println(list);//[java.util.Scanner[...], hello, 123]
list.remove(0);//根据索引去删除
System.out.println(list);//[hello, 123]
list.add("world"); //list [hello,123,world] list2[hello,123]
//list.removeAll(list2);//[word]
//list.retainAll(list2);//[hello, 123]
System.out.println(list);//[hello, 123, world] //(5)判断
System.out.println("hello在集合中是否存在:"+list.contains("hello"));//true
System.out.println("java在集合中是否存在:"+list.contains("java"));//false //(6)清空集合中所有的元素对象
System.out.println(list);//[hello, 123, world]
System.out.println(list2);//[hello, 123]
System.out.println(list.containsAll(list2));//true----list是否包含list2
//list.clear();
//System.out.println(list); //(7)获取指定索引位置上的元素对象
System.out.println(list.get(1));//123 //(8)设置
list.set(1, "java");
System.out.println(list);//[hello, java, world] //(9)在指定的索引位置上添加元素对象
list.add(1, "html");
System.out.println(list);//[hello, html, java, world] //(10)查找元素在集合中的位置
System.out.println(list.indexOf("java")+"\t"+list.indexOf("sql"));//2 -1
//(11)遍历集合中元素的内容
/**(1)使用加强for循环遍历集合中的元素*/
System.out.println("\n使用加强for循环遍历集合中的元素\n");
for(Object obj:list){
System.out.println(obj); }
/**(2)使用普通for循环遍历集合中的元素对象*/
System.out.println("\n使用普通for循环遍历集合中的元素对象\n");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
/**(3)使用迭代器*/
System.out.println("\n使用迭代器遍历集合中的元素\n");
Iterator ite=list.iterator(); //正向遍历
while(ite.hasNext()){//判断集合中是否有元素对象
Object obj=ite.next();
System.out.println(obj);
}
System.out.println("使用listIterator()遍历");
ListIterator listIte=list.listIterator();
System.out.println("正向遍历");
System.out.println("在集合的开头,后面还有元素对象吗?"+listIte.hasNext());
System.out.println("在集合的开头,前面有元素对象吗?"+listIte.hasPrevious());
while(listIte.hasNext()){
System.out.println(listIte.next());
}
System.out.println("到达集合的末尾,后面还有元素对象吗?"+listIte.hasNext());
System.out.println("到达集合的末尾,前面有元素对象吗?"+listIte.hasPrevious());
System.out.println("\n逆向遍历集合中的元素\n");
while(listIte.hasPrevious()){
System.out.println(listIte.previous());
} }
}

java 容器 List的更多相关文章

  1. 【Java心得总结七】Java容器下——Map

    我将容器类库自己平时编程及看书的感受总结成了三篇博文,前两篇分别是:[Java心得总结五]Java容器上——容器初探和[Java心得总结六]Java容器中——Collection,第一篇从宏观整体的角 ...

  2. 【Java心得总结六】Java容器中——Collection

    在[Java心得总结五]Java容器上——容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器 ...

  3. 【Java心得总结五】Java容器上——容器初探

    在数学中我们有集合的概念,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体. 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集.构成集合的事物或对象称作元素或是成 ...

  4. Java 容器(list, set, map)

    java容器类库的简化图: (虚线框表示接口, 实线框表示普通的类, 空心箭头表示特定的类实现了接口, 实心箭头表示某个类可以生成箭头所指的类对象) 继承Collection的主要有Set 和 Lis ...

  5. Java - 容器详解

    一.ArrayList 长度可变数组,类似于c++ STL中的vector. 元素以线性方式连续存储,内部允许存放重复元素. 允许对元素进行随机的快速访问,但是向ArrayList中插入和删除元素的速 ...

  6. Java 容器:Collection 初探之 List

    1 ///: JavaBasic//com.cnblogs.pattywgm.day1//CollectionTest.java 2 3 package com.cnblogs.pattywgm.da ...

  7. java容器---集合总结

    思考为什么要引入容器这个概念? Java有多种方式保存对象(应该是对象的引用),例如使用数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定 ...

  8. 3)Java容器

    3)Java容器   Java的集合框架核心主要有三种:List.Set和Map.这里的 Collection.List.Set和Map都是接口(Interface). List lst = new ...

  9. JAVA容器

    JAVA容器 一.容器体系结构 java.util 二.迭代器Iterator<E> 迭代器是一种设计模式,可以遍历并选择序列中的对象,而开发人员并不需要了解该序列的底层结构.迭代器通常被 ...

  10. Java 容器相关知识全面总结

    Java实用类库提供了一套相当完整的容器来帮助我们解决很多具体问题.因为我本身是一名Android开发者,包括我在内很多安卓开发,最拿手的就是ListView(RecycleView)+BaseAda ...

随机推荐

  1. canvas-color的几种设置

    #ffff #642 = #664422 rgb(255,128,0) rgba(100,100,100,0.8) hsl(20,62%,28%) hsla(40,82%,33%,0.6) red

  2. csharp:SMO run sql script

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. js发送请求

    1.Chrome控制台中 net::ERR_CONNECTION_REFUSED js频繁发送请求,有可能连接被拒绝,可用setTimeout,过几秒发送,给个缓冲时间 var overlayAnal ...

  4. sqlserver配置实践

    对于一套新的sqlserver服务器,我们首先要对它做一些必要的优化配置,确保在生产上比较长的时间段内可以比较稳定的,良好的运行. 新的sqlserver服务器上安装的sqlserver版本,可以选择 ...

  5. Loadrunner 运行场景-场景中的全局变量与关联结果参数

    运行场景-场景中的全局变量与关联结果参数   by:授客 QQ:1033553122 A.   全局变量 实验1: globals.h #ifndef _GLOBALS_H #define _GLOB ...

  6. [软件逆向]实战Mac系统下的软件分析+Mac QQ和微信的防撤回

      0x00  一点废话 最近因为Mac软件收费的比较多,所以买了几款正版软件,但是有的软件卖的有点贵,买了感觉不值,不买吧,又觉得不方便,用别人的吧,又怕不安全.于是我就买了正版的Hopper Di ...

  7. chrome新版打开新标签页自动打开谷歌主页

    最近更新了chrome,发现新版有个问题. 打开标签页时会自动跳转至 https://www.google.com/webhp?ie=UTF-8&gws_rd=cr&rct=j 导致我 ...

  8. ES6 入门

    1.简介 ECMAScript 6.0 是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序, ...

  9. 7z常用命令行&7z检测压缩包完整性&7z压缩包错误不执行rsync同步

    7Z简介&常用命令 7Z脚本使用说明 7Z检测压缩包完整性脚本 7Z压缩包错误不执行Rsync脚本 1.7Z简介&常用命令 ⑴简介: 7z,全称7-Zip, 是一款开源软件.是目前公认 ...

  10. 16LaTeX学习系列之---LaTeX数学公式的补充

    目录 目录 前言 (一)知识点说明 1.基础细节 2.gather环境 3.align环境 4.split环境 5.cases环境 (二)实例 1.源代码 2.输出效果 目录 本系列是有关LaTeX的 ...