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. linq使用Take和Skip实现分页

    ;//第1页 ;//页大小 var list = list.Skip((pageIndex-1) * pageSize).Take(pageSize).ToList();

  2. Linux常用基本命令:三剑客命令之-awk模式用法(2)

    1,正则模式,在/etc/passwd中 过滤出使用/bin/bash的用户 ghostwu@dev:~/linux/awk$ awk -v FS=":" 'BEGIN{print ...

  3. window的cmd命令行下新增/删除文件夹及文件

    新增文件夹 (md / mkdir) md <folderName>: folderName 就是文件路径,只输入文件夹名称时表示在当前目录下创建文件夹. 比如:md F:\test\pr ...

  4. 前端整理——Vue部分

    (1)Vue的生命周期 1)创建vue实例,初始化生命周期钩子函数 2)数据检测及方法和计算属性代理.在数据检测和初始化数据之前调用beforeCreated(),这时还获取不到props或者data ...

  5. 【代码笔记】Web-ionic-Range

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  6. 【读书笔记】iOS-iOS安全基础知识

    一,iOS硬件/设备的类型. iPad的问世,就是在这一方向上迈出的第一步.第一代iPad使用了ARM Cortex-A8架构的CUP,它的速度大约是第一代iPhone所使用CPU速度的两倍. iPa ...

  7. 从零开始学习html(二)认识标签(第一部分)——下

    八.<blockquote>标签,长文本引用 <!DOCTYPE HTML> <html> <head> <meta http-equiv=&qu ...

  8. 我的Java之旅 第一课 开发环境准备

    1.JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK). SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从J ...

  9. id、name、setter方法注入、构造方法注入、工厂方法注入、注解注入、方法注入、方法替换、Web作用域、普通bean引用Web作用域的bean

    spring IoC的id和name id的命名需要满足XML对id的命名规范,必须以字母开始,后面可以是字母.数字.连字符.下画线.句号.冒号等等号,但逗号和空格是非法的.如果用户确实希望用一些特殊 ...

  10. 利用trie树实现前缀输入提示及trie的python实现

    代码来自https://github.com/wklken/suggestion/blob/master/easymap/suggest.py 还实现了缓存功能,搜索某个前缀超过一定次数时,进行缓存, ...