java 容器 List
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的更多相关文章
- 【Java心得总结七】Java容器下——Map
我将容器类库自己平时编程及看书的感受总结成了三篇博文,前两篇分别是:[Java心得总结五]Java容器上——容器初探和[Java心得总结六]Java容器中——Collection,第一篇从宏观整体的角 ...
- 【Java心得总结六】Java容器中——Collection
在[Java心得总结五]Java容器上——容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器 ...
- 【Java心得总结五】Java容器上——容器初探
在数学中我们有集合的概念,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体. 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集.构成集合的事物或对象称作元素或是成 ...
- Java 容器(list, set, map)
java容器类库的简化图: (虚线框表示接口, 实线框表示普通的类, 空心箭头表示特定的类实现了接口, 实心箭头表示某个类可以生成箭头所指的类对象) 继承Collection的主要有Set 和 Lis ...
- Java - 容器详解
一.ArrayList 长度可变数组,类似于c++ STL中的vector. 元素以线性方式连续存储,内部允许存放重复元素. 允许对元素进行随机的快速访问,但是向ArrayList中插入和删除元素的速 ...
- Java 容器:Collection 初探之 List
1 ///: JavaBasic//com.cnblogs.pattywgm.day1//CollectionTest.java 2 3 package com.cnblogs.pattywgm.da ...
- java容器---集合总结
思考为什么要引入容器这个概念? Java有多种方式保存对象(应该是对象的引用),例如使用数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定 ...
- 3)Java容器
3)Java容器 Java的集合框架核心主要有三种:List.Set和Map.这里的 Collection.List.Set和Map都是接口(Interface). List lst = new ...
- JAVA容器
JAVA容器 一.容器体系结构 java.util 二.迭代器Iterator<E> 迭代器是一种设计模式,可以遍历并选择序列中的对象,而开发人员并不需要了解该序列的底层结构.迭代器通常被 ...
- Java 容器相关知识全面总结
Java实用类库提供了一套相当完整的容器来帮助我们解决很多具体问题.因为我本身是一名Android开发者,包括我在内很多安卓开发,最拿手的就是ListView(RecycleView)+BaseAda ...
随机推荐
- WordPress 新版本中编辑器不好用, 使用原有编辑器
将以下代码添加到当前主题的函数模板 functions.php 文件中即可. add_filter('use_block_editor_for_post', '__return_false'); re ...
- python 中文件输入输出及os模块对文件系统的操作
整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...
- Kotlin入门(3)基本变量类型的用法
上一篇文章介绍了Kotlin在App开发中的简单用法,包括操纵控件对象.设置控件监听器,以及弹出Toast提示等等.也许大家已经迫不及待想要了解更深入的App开发,可是由于Kotlin是一门全新的语言 ...
- TensorFlow实现Softmax回归(模型存储与加载)
# -*- coding: utf-8 -*- """ Created on Thu Oct 18 18:02:26 2018 @author: zhen "& ...
- javascript中的异步编程
正常情况下js都是顺序执行的,但是也有很多场景下实际上是异步操作: 1.定时器都是异步操作 2.事件绑定都是异步操作 3.AJAX中一般我们都采取异步操作(也可以同步) 4.回调函数可以理解为异步(不 ...
- python pip 使用时错误: Patal error in launcher:Unable to create process using '"'
当前我的电脑配置是64位, 装有python2.7 和python 3.6 两个版本 在使用pip install mysqlclient 的时候,出现了 Patal error in launch ...
- nslookup debug
Try adding forwarders to some public DNS servers leave the box ticked which says use root hints if f ...
- ELK-logstash-6.3.2部署
Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理. 1. logstash部署 [yun@mini04 software]$ p ...
- Spring boot+ maven + thymeleaf + HTML 实现简单的web项目
第一步: 创建一个SpringBoot应用 第二步: 创建一个实体,用来存储数据,在src/main/java/com/example/first下创建包entity , 在entity下创建Pers ...
- SQLite基本操作-----IOS(如有雷同,纯属巧合)
一.常用方法 sqlite3 *db, 数据库句柄,跟文件句柄FILE很类似 sqlite3_stmt *stmt, 这个相当于ODBC的Command对象,用于保存编译好 ...