List类集接口-ArrayList
Collection接口下的List子接口允许有重复,那么在实际的开发之中,90%都使用的List接口。
List接口对Collection接口做了大量的扩充,主要扩充了如下方法:
public E set(int index, E element) | 普通 | 修改指定索引的数据 |
public E get(int index) | 普通 | 取得指定索引的数据 |
public ListIterator<E> listIterator() | 普通 | 为ListIterator接口实例化 |
List中有三个子类:ArrayList(90%)、LinkedList(5%)、Vector(5%)。
1.使用ArrayList实例化List接口
1 package cn.demo; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 public class TestHash { 7 public static void main(String[] args) throws Exception { 8 List<String> set = new ArrayList<String>(); 9 set.add("java"); 10 set.add("html"); 11 set.add("jsp"); 12 set.add("ajax"); 13 System.out.println(set); 14 System.out.println(set.get(2)); 15 System.out.println(set.contains("java")); 16 Object obj [] = set.toArray() ; // 不可能使用 17 for (int x = 0 ; x < obj.length ; x ++) { 18 System.out.println(obj[x]); 19 } 20 } 21 }
结果:
[java, html, jsp, ajax]
jsp
true
java
html
jsp
ajax
2.List与简单Java类:
对于List集合(所有集合)如果要想实现数据的删除与查找操作,一定需要简单java类中的equals()方法支持。
1 package cn.demo; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 class Phone{ 7 private String name; 8 private double price; 9 public Phone(String name,double price){ 10 this.name =name; 11 this.price = price; 12 } 13 14 @Override 15 public String toString() { 16 return "Phone [name=" + name + ", price=" + price + "/n"; 17 } 18 19 @Override 20 public boolean equals(Object obj) { 21 if (this == obj) 22 return true; 23 if (obj == null) 24 return false; 25 if (getClass() != obj.getClass()) 26 return false; 27 Phone other = (Phone) obj; 28 if (name == null) { 29 if (other.name != null) 30 return false; 31 } else if (!name.equals(other.name)) 32 return false; 33 if (Double.doubleToLongBits(price) != Double.doubleToLongBits(other.price)) 34 return false; 35 return true; 36 } 37 } 38 public class TestDemo { 39 public static void main(String[] args) { 40 List<Phone> all = new ArrayList<Phone>(); 41 all.add(new Phone("xiao米",20.9)); 42 all.add(new Phone("大米",20)); 43 System.out.println(all.contains(new Phone("大米",20))); 44 all.remove(new Phone("xiao米",20.9)); 45 System.out.println(all); 46 } 47 }
结果:
true
[Phone [name=大米, price=20.0/n]
Collection类集删除对象或查找对象一定要使用equals()方法。
转载于:https://www.cnblogs.com/liyang31/p/5811914.html
List类集接口-ArrayList相关推荐
- 开课吧Java教程什么是类集接口
类集框架定义了几个接口.本节对每一个接口都进行了概述.首先讨论类集接口是因为它们决定了collection类的基本特性.不同的是,具体类仅仅是提供了标准接口的不同实现.支持类集的接口总结在如下的表中: ...
- Java常用类集接口以及实现方式总结
最近学习map-reduce原理以及map-reduce编程,于是顺带着学习下Java编程,对于Java常用的数据结构和类集,我总结到mind图中,便于理清相互之间的关系 package leiji; ...
- java机考_【Java】(机考常用)类集
类集框架(集合框架)是一个用来代表和操纵集合的统一架构.所有的类集框架都包含如下内容: 接口:是代表类集的抽象数据类型.之所以定义多个接口,是为了以不同的方式操作集合对象. 例如:Collection ...
- java类集(List/Set/Map/
java实现类集的包: java.util.*包 类集:动态对象数组(可以保存多个对象在一个数组之中)或链表 问题:数组长度不可改变,当需要向数组中增加数据的时候需要去考虑对象数组的容量 Collec ...
- JAVA(四)类集/枚举
成鹏致远 | lcw.cnblog.com |2014-02-04 JAVA类集 1.认识类集 类集的作用 类集实际上就是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充 类集的 ...
- 抽象类和接口设计_如何设计类和接口
抽象类和接口设计 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导您 ...
- [零基础学JAVA]Java SE应用部分-35.JAVA类集之四
JAVA按以下重要顺序 · 面向对象 · 类集框架 · JDBC · 文件编程 本季目标 主要讲解以下的内容: · Collection · List · Set · Map · Iterator · ...
- JavaSE——类集(下)(Set、Comparable、Collections、Comparator、Map)
第2节 集合(下) 一.Set接口 java.util.Set 接口和 java.util.List接口一样,同样继承自 Collection接口,它与Collection接口中的方法基本一致,并没有 ...
- JavaSE——类集(上)(Collection、List、Iterator、forEach)
第2节 集合(上) 因为已经有数据结构的基础,前面有关数据结构的知识就不单独整理了,直接上Java的集合类的知识. 一.类集(集合类) 1.1 集合概述 集合: 集合是java中提供的一种容器,可以用 ...
最新文章
- 如何在Mac环境下搭建svn服务器端环境
- 十 ubus安装编译
- Go实现简单的RESTful_API
- Java体系学习书籍推荐,BAT 面试官 如何面试
- 2017.08.15【NOIP提高组】模拟赛B组 生日聚餐
- Smartmontools检测硬盘坏道
- 小米摄像头卡刷固件包官方下载_三星GalaxyA90澳洲版刷机包(官方线刷固件原厂系统包下载A908BXXU1ASJ4-OPS)...
- 免费计算机管理软件,免费电脑销售管理软件
- OPenGL 学习笔记之 Assimp 知识
- mysql数据库输出数据语法错误_MySQL数据库定义存储过程总是报语法错误的解决方法...
- 机器学习 k-近邻算法
- pythonmatplotlib绘图小提琴_python 箱线图和小提琴图
- 江南爱窗帘十大品牌 窗帘发展状况怎么样
- 中小企业网管管理完全篇 [转]
- 加盟代理的骗局[转载]
- 计算机主机通常包不包括硬盘,计算机主机通常包括
- grpc断路器之sentinel
- 北京交通大学计算机科学与技术考研难度,2018年北京交通大学计算机科学与技术(081200)考研专业分析...
- 从头开始swift2.1 仿搜材通项目(八) 制定通用的Controller规则
- cmd解决端口占用问题
热门文章
- linux 更改ctime_Linux 的文件系统及文件缓存知识点整理
- c语言数组算n阶乘,c语言中如何计算n的阶乘
- python扫雷代码_谁说Python不能做游戏的?能做这些游戏,附赠所有游戏源码文件...
- Kubernetes Service(溪恒)
- 从零入门 Serverless | SAE 场景下,应用流量的负载均衡及路由策略配置实践
- vbs 等于_西门子触摸屏VBS编程quot;陷阱quot;之VBS不支持多线程
- java 删除文件失败_java 文件删除失败(被进程占用)
- 如何复制粘贴_年终工作总结如何写?复制粘贴肯定不行啦
- java sessionmanager_java.lang.IllegalStateException:没有SessionManager
- java 对象初始化_Java对象初始化