list集合练习一

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.有重复的
   * */
 }
}

posted @ 2016-07-31 21:40  对与错  阅读(128)  评论(0编辑  收藏  举报