package com.tn.collect;

 import java.util.ArrayList;
import java.util.Iterator; class Product{
public Product() {
super();
// TODO Auto-generated constructor stub
}
public Product(int id, String name, int price) {
// TODO Auto-generated constructor stub
setId(id);
setName(name);
setPrice(price);
}
private int id;
private String name;
private double price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Product [id=" + id + ", name=" + name + ", price=" + price
+ "]";
}
}
public class ArrayListLearning {
public static void main(String[] args){
Product product1=new Product(1001,"奇瑞",99999);
Product product2=new Product(1002,"江淮",88888);
Product product3=new Product(1003,"比亚迪",77777);
ArrayList arrayList=new ArrayList();
arrayList.add(product1);
arrayList.add(product2);
arrayList.add(product3);
System.out.println(arrayList);//会打印容器中每个对象的toString
System.out.println(arrayList.size());
Object object=arrayList.get(0);
System.out.println(object);
Product product=(Product)arrayList.get(0);
System.out.println(arrayList.get(0));
Product product4=new Product(1004,"力帆",66666);
Product product5=new Product(1005,"吉利",55555);
Product productx=new Product(1005,"吉利",55555);
ArrayList<Product> list=new ArrayList<Product>();
list.add(product4);
list.add(product5);
Product product6=list.get(0);
System.out.println(product6); //遍历方法一:
for(int i=0;i<list.size();i++){
Product pro=list.get(i);
System.out.println(pro);
} //遍历方法二:
Iterator<Product> iterator=list.iterator();
while(iterator.hasNext()){
Product pro=iterator.next();
} //遍历方法三:
for(Object obj:list){
Product pro=(Product)obj;
} System.out.println(list.contains(product5));
System.out.println(list.contains(productx));//对象创建是两个,但实际应用中这两个对象应该是一个
}
}

ArrayList

运行结果:

[Product [id=1001, name=奇瑞, price=99999.0], Product [id=1002, name=江淮, price=88888.0], Product [id=1003, name=比亚迪, price=77777.0]]
3
Product [id=1001, name=奇瑞, price=99999.0]
Product [id=1001, name=奇瑞, price=99999.0]
Product [id=1004, name=力帆, price=66666.0]
Product [id=1004, name=力帆, price=66666.0]
Product [id=1005, name=吉利, price=55555.0]
true
false


 package com.tn.collect;

 import java.util.ArrayList;
import java.util.Iterator; class Product{
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Product other = (Product) obj;
if (id != other.id)
return false;
return true;
}
public Product() {
super();
// TODO Auto-generated constructor stub
}
public Product(int id, String name, int price) {
// TODO Auto-generated constructor stub
setId(id);
setName(name);
setPrice(price);
}
private int id;
private String name;
private double price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Product [id=" + id + ", name=" + name + ", price=" + price
+ "]";
}
}
public class ArrayListLearning {
public static void main(String[] args){
Product product1=new Product(1001,"奇瑞",99999);
Product product2=new Product(1002,"江淮",88888);
Product product3=new Product(1003,"比亚迪",77777);
ArrayList arrayList=new ArrayList();
arrayList.add(product1);
arrayList.add(product2);
arrayList.add(product3);
System.out.println(arrayList);//会打印容器中每个对象的toString
System.out.println(arrayList.size());
Object object=arrayList.get(0);
System.out.println(object);
Product product=(Product)arrayList.get(0);
System.out.println(arrayList.get(0));
Product product4=new Product(1004,"力帆",66666);
Product product5=new Product(1005,"吉利",55555);
Product productx=new Product(1005,"吉利",55555);
ArrayList<Product> list=new ArrayList<Product>();
list.add(product4);
list.add(product5);
Product product6=list.get(0);
System.out.println(product6); //遍历方法一:
for(int i=0;i<list.size();i++){
Product pro=list.get(i);
System.out.println(pro);
} //遍历方法二:
Iterator<Product> iterator=list.iterator();
while(iterator.hasNext()){
Product pro=iterator.next();
} //遍历方法三:
for(Object obj:list){
Product pro=(Product)obj;
} System.out.println(list.contains(product5));
System.out.println(list.contains(productx));//对象创建是两个,但实际应用中这两个对象应该是一个
}
}

重写equals方法后

运行结果:

[Product [id=1001, name=奇瑞, price=99999.0], Product [id=1002, name=江淮, price=88888.0], Product [id=1003, name=比亚迪, price=77777.0]]
3
Product [id=1001, name=奇瑞, price=99999.0]
Product [id=1001, name=奇瑞, price=99999.0]
Product [id=1004, name=力帆, price=66666.0]
Product [id=1004, name=力帆, price=66666.0]
Product [id=1005, name=吉利, price=55555.0]
true
true

【java】ArrayList、Iterator用法的更多相关文章

  1. Java中Iterator用法整理

    迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的I ...

  2. Java 中Iterator 、Vector、ArrayList、List 使用深入剖析

    标签:Iterator Java List ArrayList Vector 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些 ...

  3. Java ArrayList、Vector和LinkedList等的差别与用法(转)

    Java ArrayList.Vector和LinkedList等的差别与用法(转) ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都 ...

  4. Java笔记--Java的List、Iterator用法

    1. List的使用 准备知识: List继承自Collection接口.List是一种有序集合,List中的元素可以根据索引(顺序号:元素在集合中处于的位置信息)进行取得/删除/插入操作. 跟Set ...

  5. java——ArrayList中常见方法用法

    package com.xt.list; import java.util.ArrayList; import java.util.Iterator; import java.util.List; p ...

  6. Java学习笔记之ArrayList基本用法

    原文地址,转载请注明出处:https://blog.csdn.net/GongchuangSu/article/details/51514389 ArrayList简介 ArrayList是一个其容量 ...

  7. Java list的用法排序及遍历

    原文地址:http://baike.xsoftlab.net/view/208.html 1用法 ·ArrayList ·LinkedList 2排序 ·数字排序 ·中文排序 ·实体类排序 3遍历 · ...

  8. Java——ArrayList使用Demo

    三种遍历方式 通过迭代器Iterator遍历 通过get(索引值)遍历 for循环遍历 ArrayList使用Demo package list; import java.util.ArrayList ...

  9. java List的用法

    List的用法List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表 ...

随机推荐

  1. 使用swiper简单的h5下滑翻页效果,

    <!DOCTYPE html><html lang="en"><head>  <meta charset="utf-8" ...

  2. ssh简单配置

    Port 2223Protocol 2HostKey /etc/ssh/ssh_host_rsa_keyHostKey /etc/ssh/ssh_host_dsa_keyKeyRegeneration ...

  3. PyCharm教程

    1.PyCharm3.0默认快捷键 2.PyCharm默认模板设置 3.字体设置 1.PyCharm3.0默认快捷键(翻译的)PyCharm Default Keymap 1.编辑(Editing) ...

  4. 通过hadoop + hive搭建离线式的分析系统之快速搭建一览

    最近有个需求,需要整合所有店铺的数据做一个离线式分析系统,曾经都是按照店铺分库分表来给各自商家通过highchart多维度展示自家的店铺经营 数据,我们知道这是一个以店铺为维度的切分数据,非常适合目前 ...

  5. 关于Python在Linux、Mac和Windows上的安装方法总结

    一.Linux下安装python   1.python源码安装包下载地址:   https://www.python.org/downloads/source/   2.下载完tar.xz压缩包以后, ...

  6. webstorm激活破解码+++使用技巧

    Webstorm激活破解码 2017-06-15更新 之前都是使用2017.2.27的方法,版本是2017.1.1,还没提示过期,但是根据评论说这个链接已经失效了,评论也给出了个新地址:http:// ...

  7. 实验:ignite查询效率探究

    前面的文章讲到ignite支持扫描查询和sql查询,其sql查询是ignite产品的一个亮点,那么哪一种的查询更适合我们的产品使用呢,往下看: 先分别贴一下扫描查询和sql查询两种查询方式的代码,供参 ...

  8. HTML5到底将给企业带来什么?

    HTML5 是近年来互联网行业的热门词汇,火的很.有人高调宣称"APP 将在几年内灭亡,HTML5 取而代之" 改变企业网络广告的模式与分布 广告是企业网络营销的主要方式之一 十几 ...

  9. 笔记(json)实现前后端交互案例

    1:首先创建一个项目如:(说明:此项目是在eclipse创建的) 2.在创建相对应的包如: 3.创建写好相对应的配置文件如: applicationContext.xml具体内容如下: <?xm ...

  10. 状态机编程思想(2):删除代码注释(目前支持C/C++和Java)

    有时为了信息保密或是单纯阅读代码,我们常常需要删除注释. 之前考虑过正则表达式,但是感觉实现起来相当麻烦.而状态机可以把多种情况归为一类状态再行分解,大大简化问题.本文就是基于状态机实现的. 删除C/ ...