java集合(ArrayList练习)

import java.util.ArrayList;

import java.util.Iterator;

/* 1.存入自定义对象,并且去除重复元素。

* 2.List集合判断元素是否相同,依据的是元素的equals方法。

* 心得:Object 里的equals方法判断的是对象的地址值是否相同。

*   String 里的equals方法判断对象里内容是否相同。

*    在自定义类里面要复写Object中的equals方法,让其比较对象里的内容。

在java里能封装的变量、对象和方法尽量封装,让主函数尽量简洁。

*/

//定义一个Person类

class Person{

//定义私有变量name和age

private String name;

private int age;

//定义Person的有参构造函数,并且对私有成员变量进行初始化。

Person(String name,int age)

{

this.name=name;

this.age=age;

}

//复写Object中的equals方法。

public boolean equals(Object obj)

{

//判断参数对象是否属于Person对象

if(!(obj instanceof Person))

return false;

//向下转型,让obj能够调用Person里的成员变量。

Person p=(Person) obj;

System.out.println(this.name+"--"+p.name);

//比较name和age,相同返回true,否则返回false

return this.name.equals(p.name)&&(this.age==p.age);

}

//为私有成员提供对外访问方式

public String getName()

{

return  name;

}

//为私有成员提供对外访问方式

public int getAge()

{

return age;

}

}

public class ArrayListDemo1 {

public static void main(String[] args)

{

//定义一个容器

ArrayList a1=new ArrayList();

//往容器里添加自定义对象

a1.add(new Person("lisi1",20));

a1.add(new Person("lisi2",21));

a1.add(new Person("lisi3",22));

a1.add(new Person("lisi4",23));

//a1.add(new Person("lisi3",22));

//a1.add(new Person("lisi4",23));

//调用method方法去除相同元素

//a1=method(a1);

//在容器里取出元素

sop(a1.remove(new Person("lisi3",22)));

//定义a1的迭代器

Iterator it= a1.iterator();

//进行输出。

while(it.hasNext())

{

Person p=(Person)it.next();

sop(p.getName()+"--"+p.getAge());

}

}

//定义method方法

public static ArrayList method(ArrayList li)

{

//定义一个临时容器

ArrayList newAl=new ArrayList();

//定义参数对象的迭代器

Iterator it=li.iterator();

while(it.hasNext())

{

Object obj=it.next();

//如果临时容器里面不包含obj对象,则添加该对象

if(!newAl.contains(obj))

{

newAl.add(obj);

}

}

return newAl;

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-09 17:36:12

java集合(ArrayList练习)的相关文章

Java集合---ArrayList源码

本文转载自博客园牛奶.不加糖 原文地址:http://www.cnblogs.com/ITtangtang/p/3948555.html 本文仅供本人学习参考使用,如有侵权立即删除. 一. ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安

Java集合---ArrayList的实现原理

一. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小.   每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小.它总是至少等于列表的大小.随着向ArrayList中不断添加元素,其容量也自动增长.自动增长会带来数据向新数组的重新拷贝,因此,如果可预知数据量的多少,可在构造ArrayList时指定其容

java集合-ArrayList

一直要总结java集合中的知识,不知道应该如何下笔.觉得集合太多东西了,写细了太难了,写粗了又感觉写不好.不管如何觉得还是要坚持的写一写基础这一类的东西,为了提高自己的编程基础.本来觉的自己对这些已经很熟悉,最近见过一些大神后发现差距太大了,瞬间懵了,只能在加强学习了. 一.ArrayList是什么? ArrayList是实现List接口的动态数组,所谓动态是指它的大小是可变的.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部

【源码阅读】Java集合 - ArrayList深度源码解读

Java 源码阅读的第一步是Collection框架源码,这也是面试基础中的基础: 针对Collection的源码阅读写一个系列的文章,从ArrayList开始第一篇. [email protected] JDK版本 JDK 1.8.0_110 概述总结 ArrayList底层是通过数组实现的:其中capacity表示底层数组的长度,而ArrayList长度由size表示: ArrayList允许存放null元素,也可以查找null所在的index, 比如indexOf(), lastIndex

java集合ArrayList

数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变. 为了保存这些数目不确定的元素,JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合. ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类).在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组.

Java集合ArrayList的应用

/** * * @author Administrator * 功能:Java集合类ArrayList的使用 */ package com.test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Test2 { public static void main(String[] args) throws Exception{ // TODO Aut

java集合-- arraylist小员工项目

import java.io.*; import java.util.ArrayList; public class Emexe { public static void main(String[] args) throws IOException { EmpManage em=new EmpManage(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); while(true){ System.o

Java 集合--ArrayList

ArrayList构造函数 // 默认构造函数 ArrayList() // capacity是ArrayList的默认容量大小.当由于增加数据导致容量不足时,容量会添加上一次容量大小的一半. ArrayList(int capacity) // 创建一个包含collection的ArrayList ArrayList(Collection<? extends E> collection) ArrayList的API // Collection中定义的API boolean add(E obj

java集合框架--ArrayList类、Vector和LinkedList类

1.ArrayList类概述 底层数据结构是数组,查询块,增删慢. 线程不安全,效率高. 2.ArrayList案例 2.1存储字符串并遍历 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class ArrayListDemo { public static void main(String[] args) { //创建ArrayL