package com.java.c.domain;

public class Person {
 private String name;
 private int age;

public Person() {
  super();
 }

public Person(String name, int age) {
  super();
  this.name = name;
  this.age = age;
 }

public String getName() {
  return name;
 }

public void setName(String name) {
  this.name = name;
 }

public int getAge() {
  return age;
 }

public void setAge(int age) {
  this.age = age;
 }

@Override
 public String toString() {
  return "Person [name=" + name + ", age=" + age + "]";
 }

@Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result + age;
  result = prime * result + ((name == null) ? 0 : name.hashCode());
  return result;
 }

@Override
 public boolean equals(Object obj) {
  if(this==obj){
   return true;
  }
  if(!(obj instanceof Person)){
   throw new ClassCastException();
  }else{
   Person p=(Person)obj;
  return this.name.equals(p.name)&&this.age==p.age;
  }
 }
}

----------------------------------------------------------------------------------------------------

package com.java.c.list.www;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.java.c.domain.Person;

public class ListTest {
 public static void main(String[] args) {
  //定义一个list集合
  List list=new ArrayList();
  //添加元素到集合中
  list.add(new Person("王武",25));
  list.add(new Person("张三",28));
  list.add(new Person("武打",27));//集合添加的元素都是对象,另外基本数据是不能添加的,但是因为自动装箱的缘故导致可以装箱
  
  //输出一下添加完的集合元素
  for (Iterator it = list.iterator(); it.hasNext();) {//因为元素都为Object类,没有集合特有的方法,所以我要需要向下转型
   Person p = (Person)it.next();
   System.out.println(p);
  }
  System.out.println("------------------------------------------------------------");
  //按角标插入一个元素并且输出
  list.add(1, new Person("桓公",99));
  for (int i = 0; i < list.size(); i++) {
   System.out.println("Person"+i+":"+list.get(i));
  }
  System.out.println("------------------------------------------------------------");
  //再三处指定角标下的元素
  list.remove(2);
  for (int i = 0; i < list.size(); i++) {
   System.out.println("Person"+i+":"+list.get(i));
  }
  //list集合还可以加入重复的元素,重复的元素是怎么判断的,主要靠得是被添加元素的对象地址
  list.add(new Person("王武",25) );//虽然名字 年龄一样但是是新被new出来的 跟原先那个的对象地址不同,所以不重复
  Person p=new Person("威廉",26);
  list.add(p);
  list.add(p);//上面两个新加入的是重复元素
  /*
   * list集合的特性:
   * 1.是有序的,所以有了角标,然后可以插入,删除某一特定的元素或元素段
   * 2.有重复的
   * */
 }
}

list集合练习一的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. .Net多线程编程—并发集合

    并发集合 1 为什么使用并发集合? 原因主要有以下几点: System.Collections和System.Collections.Generic名称空间中所提供的经典列表.集合和数组都不是线程安全 ...

  3. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  4. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  5. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  6. Java基础Collection集合

    1.Collection是所有集合的父类,在JDK1.5之后又加入了Iterable超级类(可以不用了解) 2.学习集合从Collection开始,所有集合都继承了他的方法 集合结构如图:

  7. 轻量级“集合”迭代器-Generator

    Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下G ...

  8. Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合

    今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...

  9. 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)

    在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...

  10. python 数据类型 --- 集合

    1. 注意列表和集合的区别 set 列表表现形式: list_1 = [1,3,4];  集合表现形式:set_1= set() list_1 = [1,2,3,4,23,4,2] print(lis ...

随机推荐

  1. C#的类成员初始化顺序

    C#的类成员的定义和声明如下 using UnityEngine; using System.Collections; public class TestController : ECControll ...

  2. apache的FileUtils方法大全

    FileUtils 获取系统的临时目录路径:getTempDirectoryPath() [java] view plaincopyprint? public static String getTem ...

  3. HDOJ/HDU 1088 Write a simple HTML Browser(HTML字符串)

    Problem Description If you ever tried to read a html document on a Macintosh, you know how hard it i ...

  4. 【转】谁说Vim不是IDE?(一)

    谁说Vim不是IDE?(一)   话说操作系统.编程语言和编辑器似乎是程序员永恒的吐槽话题,技术发展了几十年,大家讨论起这几个“之争”还是充满愤怒.津津乐道.有人描述过Emacs和VI程序员,大家沿着 ...

  5. hdoj 2816 I Love You Too

    I Love You Too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  6. 第一次JAVA基础考试后的反思

    今天进行了第一次JAVA基础考试,考查了课本上前面三章和方法的知识,基本没有涉及到数组.通过这次的考试,暴露了自己在学习中的很多问题. 机试题是编写一个学员状态转换器,主要运用的是选择语句和方法,而没 ...

  7. HttpClient4.5.2 连接池原理及注意事项

    随着微服务的流行,服务之间的http调用越来越多,遇到的问题也比较多,写这边文章的目的也是将自己遇到的坑和解决方案跟大家分享 一.为什么要用Http连接池 1.降低延迟:如果不采用连接池,每次连接发起 ...

  8. ASP.NET MVC- Controllers and Routing- Routing

    二.Creating Custom Routes In this tutorial, you learn how to  add a custom route to an ASP.NET MVC ap ...

  9. Java对象的强、软、弱和虚引用详解

    1.对象的强.软.弱和虚引用 转自:http://zhangjunhd.blog.51cto.com/113473/53092/ 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无 ...

  10. 5步做好vsftpd

    系统:centos6.5 X86 1、yum -y install vsftpd 2、vim /etc/vsftpd/vsftpd.conf 可以用cat vsftpd.conf | grep -v ...