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. WordPress 新版本中编辑器不好用, 使用原有编辑器

    将以下代码添加到当前主题的函数模板 functions.php 文件中即可. add_filter('use_block_editor_for_post', '__return_false'); re ...

  2. python 中文件输入输出及os模块对文件系统的操作

    整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...

  3. Kotlin入门(3)基本变量类型的用法

    上一篇文章介绍了Kotlin在App开发中的简单用法,包括操纵控件对象.设置控件监听器,以及弹出Toast提示等等.也许大家已经迫不及待想要了解更深入的App开发,可是由于Kotlin是一门全新的语言 ...

  4. TensorFlow实现Softmax回归(模型存储与加载)

    # -*- coding: utf-8 -*- """ Created on Thu Oct 18 18:02:26 2018 @author: zhen "& ...

  5. javascript中的异步编程

    正常情况下js都是顺序执行的,但是也有很多场景下实际上是异步操作: 1.定时器都是异步操作 2.事件绑定都是异步操作 3.AJAX中一般我们都采取异步操作(也可以同步) 4.回调函数可以理解为异步(不 ...

  6. python pip 使用时错误: Patal error in launcher:Unable to create process using '"'

    当前我的电脑配置是64位, 装有python2.7 和python 3.6 两个版本 在使用pip install mysqlclient 的时候,出现了  Patal error in launch ...

  7. nslookup debug

    Try adding forwarders to some public DNS servers leave the box ticked which says use root hints if f ...

  8. ELK-logstash-6.3.2部署

    Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理. 1. logstash部署 [yun@mini04 software]$ p ...

  9. Spring boot+ maven + thymeleaf + HTML 实现简单的web项目

    第一步: 创建一个SpringBoot应用 第二步: 创建一个实体,用来存储数据,在src/main/java/com/example/first下创建包entity , 在entity下创建Pers ...

  10. SQLite基本操作-----IOS(如有雷同,纯属巧合)

    一.常用方法 sqlite3          *db, 数据库句柄,跟文件句柄FILE很类似 sqlite3_stmt      *stmt, 这个相当于ODBC的Command对象,用于保存编译好 ...