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相关推荐

  1. 开课吧Java教程什么是类集接口

    类集框架定义了几个接口.本节对每一个接口都进行了概述.首先讨论类集接口是因为它们决定了collection类的基本特性.不同的是,具体类仅仅是提供了标准接口的不同实现.支持类集的接口总结在如下的表中: ...

  2. Java常用类集接口以及实现方式总结

    最近学习map-reduce原理以及map-reduce编程,于是顺带着学习下Java编程,对于Java常用的数据结构和类集,我总结到mind图中,便于理清相互之间的关系 package leiji; ...

  3. java机考_【Java】(机考常用)类集

    类集框架(集合框架)是一个用来代表和操纵集合的统一架构.所有的类集框架都包含如下内容: 接口:是代表类集的抽象数据类型.之所以定义多个接口,是为了以不同的方式操作集合对象. 例如:Collection ...

  4. java类集(List/Set/Map/

    java实现类集的包: java.util.*包 类集:动态对象数组(可以保存多个对象在一个数组之中)或链表 问题:数组长度不可改变,当需要向数组中增加数据的时候需要去考虑对象数组的容量 Collec ...

  5. JAVA(四)类集/枚举

    成鹏致远 | lcw.cnblog.com |2014-02-04 JAVA类集 1.认识类集 类集的作用 类集实际上就是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充 类集的 ...

  6. 抽象类和接口设计_如何设计类和接口

    抽象类和接口设计 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导您 ...

  7. [零基础学JAVA]Java SE应用部分-35.JAVA类集之四

    JAVA按以下重要顺序 · 面向对象 · 类集框架 · JDBC · 文件编程 本季目标 主要讲解以下的内容: · Collection · List · Set · Map · Iterator · ...

  8. JavaSE——类集(下)(Set、Comparable、Collections、Comparator、Map)

    第2节 集合(下) 一.Set接口 java.util.Set 接口和 java.util.List接口一样,同样继承自 Collection接口,它与Collection接口中的方法基本一致,并没有 ...

  9. JavaSE——类集(上)(Collection、List、Iterator、forEach)

    第2节 集合(上) 因为已经有数据结构的基础,前面有关数据结构的知识就不单独整理了,直接上Java的集合类的知识. 一.类集(集合类) 1.1 集合概述 集合: 集合是java中提供的一种容器,可以用 ...

最新文章

  1. 如何在Mac环境下搭建svn服务器端环境
  2. 十 ubus安装编译
  3. Go实现简单的RESTful_API
  4. Java体系学习书籍推荐,BAT 面试官 如何面试
  5. 2017.08.15【NOIP提高组】模拟赛B组 生日聚餐
  6. Smartmontools检测硬盘坏道
  7. 小米摄像头卡刷固件包官方下载_三星GalaxyA90澳洲版刷机包(官方线刷固件原厂系统包下载A908BXXU1ASJ4-OPS)...
  8. 免费计算机管理软件,免费电脑销售管理软件
  9. OPenGL 学习笔记之 Assimp 知识
  10. mysql数据库输出数据语法错误_MySQL数据库定义存储过程总是报语法错误的解决方法...
  11. 机器学习 k-近邻算法
  12. pythonmatplotlib绘图小提琴_python 箱线图和小提琴图
  13. 江南爱窗帘十大品牌 窗帘发展状况怎么样
  14. 中小企业网管管理完全篇 [转]
  15. 加盟代理的骗局[转载]
  16. 计算机主机通常包不包括硬盘,计算机主机通常包括
  17. grpc断路器之sentinel
  18. 北京交通大学计算机科学与技术考研难度,2018年北京交通大学计算机科学与技术(081200)考研专业分析...
  19. 从头开始swift2.1 仿搜材通项目(八) 制定通用的Controller规则
  20. cmd解决端口占用问题

热门文章

  1. linux 更改ctime_Linux 的文件系统及文件缓存知识点整理
  2. c语言数组算n阶乘,c语言中如何计算n的阶乘
  3. python扫雷代码_谁说Python不能做游戏的?能做这些游戏,附赠所有游戏源码文件...
  4. Kubernetes Service(溪恒)
  5. 从零入门 Serverless | SAE 场景下,应用流量的负载均衡及路由策略配置实践
  6. vbs 等于_西门子触摸屏VBS编程quot;陷阱quot;之VBS不支持多线程
  7. java 删除文件失败_java 文件删除失败(被进程占用)
  8. 如何复制粘贴_年终工作总结如何写?复制粘贴肯定不行啦
  9. java sessionmanager_java.lang.IllegalStateException:没有SessionManager
  10. java 对象初始化_Java对象初始化