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

  • 相关阅读:
    LeetCode: Number Complement
    LeetCode: Hamming Distance
    LeetCode: Sum of Left Leaves
    LeetCode: Ransom Note
    LeetCode: Minimum Moves to Equal Array Elements
    LeetCode: Linked List Random Node
    LeetCode: Product of Array Except Self
    LeetCode:Two Sum II
    LeetCode: Minimum Moves to Equal Array Elements II
    杂记 -- 时间段内应用程序调用次数限制
  • 原文地址:https://www.cnblogs.com/daoxiang1992/p/5723996.html
Copyright © 2020-2023  润新知