-2

重複の可能性:
さまざまな方法で重複をリストから削除する

私は調査を行っていて、リストから重複を削除する方法を以下に見つけました..しかし、私がこれについて調査を行っていたので、他の方法もあるとアドバイスしてください。素晴らしい..私の研究でもっと興味を持っているのは、新しいjdk 1.5には、このコンテキストで提供する新しいものがあります

class Emp //implements Comparable
{
      String name,job;
      int salary;
      public Emp(String n,String j,int sal)
      {
         name=n;
         job=j;
         salary=sal;
       }
      public void display()
      {
        System.out.println(name+"\t"+job+"\t"+salary);
       }
     public boolean equals(Object o)
      {

         Emp p=(Emp)o;
          return this.name.equals(p.name)&&this.job.equals(p.job) &&this.salary==p.salary;
       }
     public int hashCode()
       {
          return name.hashCode()+job.hashCode()+salary;
       }


      /* public int compareTo(Object o)
       {
          Emp e=(Emp)o;
          return this.name.compareTo(e.name);
           //return this.job.compareTo(e.job);
        //   return this.salary-e.salary;

        }*/
} 

そして最終クラスは…

 class EmpListDemo
    {
          public static void main(String arg[])
          {
              List  list=new ArrayList ();
              list.add(new Emp("Ram","Trainer",34000));
              list.add(new Emp("Sachin","Programmer",24000));
              list.add(new Emp("Ram","Trainer",34000));
              list.add(new Emp("Priyanka","Manager",54000));
              list.add(1,new Emp("Ravi","Administrator",44000));
              list.add(new Emp("Anupam","Programmer",34000));
              list.add(new Emp("Priyanka","Manager",54000));
              list.add(new Emp("Sachin","Team Leader",54000));
              System.out.println("There are "+list.size()+" elements in the list.");



              System.out.println("Content of list are : ");
              ListIterator itr1=list.listIterator();
              while(itr1.hasNext())
              {
                Emp e=(Emp)itr1.next();  
                e.display();
              }           

//Removing duplicates from the list
          Set hs = new HashSet();
          hs.addAll(list);
          list.clear();
          list.addAll(hs);
          System.out.println("******************************");
          System.out.println("There are "+hs.size()+" elements in the set.");
          System.out.println("Contents after modification : ");
          Iterator itr=list.iterator();
          while(itr.hasNext())
          {
            Emp e=(Emp)itr.next();  
            e.display();
          }   




              }
    }
4

2 に答える 2

0

を使用しHashSetます:

class EmpListDemo
{
  public static void main(String arg[])
  {
      Set list = new HashSet();
      list.add(new Emp("Ram","Trainer",34000));
      list.add(new Emp("Sachin","Programmer",24000));
      list.add(new Emp("Ram","Trainer",34000));
      list.add(new Emp("Priyanka","Manager",54000));
      list.add(new Emp("Ravi","Administrator",44000));
      list.add(new Emp("Anupam","Programmer",34000));
      list.add(new Emp("Priyanka","Manager",54000));
      list.add(new Emp("Sachin","Team Leader",54000));
      System.out.println("There are "+list.size()+" elements in the list.");



      System.out.println("Content of list are : ");
      ListIterator itr1=list.listIterator();
      while(itr1.hasNext())
      {
        Emp e=(Emp)itr1.next();  
        e.display();
      }           

      }
}
于 2012-08-01T17:21:57.067 に答える
0

ブラザーの任意の実装を使用してくださいSet。重複を許可してから後で削除するのではなく、; データ構造がそれらを許可することさえ防ぎます...

于 2012-08-01T17:24:17.560 に答える