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. php中向前台js中传送一个二维数组

    在php中向前台js中传送一个二维数组,并在前台js接收获取其中值的全过程方法: (1),方法说明:现在后台将数组发送到前台 echo json_encode($result); 然后再在js页面中的 ...

  2. PHP strftime()函数输出乱码问题

    直接调用strftime() strftime(time_buf, 80, "%a, %e %b %G %T %z", p_stime);  输出为 Îå, 18 12ÔÂ 201 ...

  3. laravel 嵌套的渴求式加载

    今天在通过需求表A查询场地类型表B,然后通过表B的场地类型id去查询表C场地类型名的时候遇到了一个小的问题. 需求表A的字段:id.user_id .name等等: 中间表B的字段:id.appeal ...

  4. Less的Extend_Less继承

    Extend就相当于Java的继承,它允许一个选择器继承另一个选择器的样式.Extend有两种语法格式. 一种是: <selector>:extend(<parentSelector ...

  5. C语言之随机数

    #include<stdio.h>#include<stdlib.h>#include<time.h>int main(){ srand(time(0)); int ...

  6. nomad的简易集群

    启动服务器 第一步是为服务器创建配置文件.无论是从下载的文件github,或粘贴到一个名为server.hcl: vim server.hcl # Increase log verbosity log ...

  7. python实战--数据结构二叉树

    此文将讲述如何用python实战解决二叉树实验 前面已经讲述了python语言的基本用法,现在让我们实战一下具体明确python的用法 点击我进入python速成笔记 先看一下最终效果图: 首先我们要 ...

  8. BootStra相关脚本引用说明

    先看一个简单的模板(DOCTYPE是html5的文档类型) <!DOCTYPE html> <html lang="zh-CN"> <head> ...

  9. 自定义spring mvc的json视图

    场景 前端(安卓,Ios,web前端)和后端进行了数据的格式规范的讨论,确定了json的数据格式: { "code":"200", "data&quo ...

  10. javascript设计模式——装饰者模式

    前面的话 在程序开发中,许多时候都并不希望某个类天生就非常庞大,一次性包含许多职责.那么可以使用装饰者模式.装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象.本文将 ...