JAVA学习之集合


一.HashSet:


setImage.png


代码:

package hashSetStudy;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class hashSetSStudy {
      public static void main(String[] args) {
            Set set=new HashSet();//新建一个set
            set.add(1);//增加元素
            set.add("a");
            set.remove(1);//移除元素
            set.contains(1);//判断set中是否存在这个值,结果为false或者true
            set.clear();//清空集合
            //使用迭代器,遍历集合
            set.add("a");
            set.add("b");
            set.add("c");
            set.add("d");
            set.add("d");//set集合是存的值是不重复的
            set.add(null);
            Iterator it=set.iterator();
            while(it.hasNext()) {
                  System.out.println(it.next());
            }
            /*
             * for each迭代集合
             */
            for(Object obj:set) {//把set的每一个值取出来,赋值给object,直到循环set的所有值
                  System.out.println(obj);      
            }
            System.out.println(set.size());//获取集合的元素大小
            /*
             * 只存一种数据类型的泛型
             */
            Set <String> set1=new HashSet<String>();//指定String为集合类型
            set1.add("");
 }
} 

二.TreeSet

  • 1.sortedSet接口的实现类,可以确保集合元素处于排序状态
  • 2.支持两种排序方法:自然排序和定制排序,默认情况下使用自然排序

Image.png


代码(自然排序):

import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class treeSet {
      public static void main(String[] args) {
            Set<Integer> set=new TreeSet<Integer>();
            set.add(5);
            set.add(4);
            set.add(2);
            set.add(3);
            System.out.println(set);
            Iterator<Integer> it=set.iterator();
            while(it.hasNext()) {
                  System.out.println(it.next());
            }
            for(Integer i:set) {
                  System.out.println(i);
            }

代码2:自定义排序
1.person类:

package treeSetStudy;
importjava.util.Comparator;
public class Person implements Comparator<Person>{
      /*
       * 把Person对象存到TreeSet中,并按照年龄排序
       */
            int age;
            String name;
            public Person() {
                  
            }
            public Person(String name,int age) {
                  this.name=name;
                  this.age=age;
            }
            @Override
            public int compare(Person o1, Person o2) {
                  if(o1.age<o2.age) {//从大到小排序
                        return 1;
                  }else if(o1.age>o2.age) {
                        return -1;
                  }else {
                  // TODO Auto-generated method stub
                  return 0;
                  }
            }
            
}

2.调用自定义排序

package treeSetStudy;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class treeSet {
      public static void main(String[] args) {
           
            Person p1=new Person("张三",23);
            Person p2=new Person("李四",16);
            Person p3=new Person("王五",20);
            Person p4=new Person("Lucy",22);
            Set<Person> set1=new TreeSet<Person>(new Person());
            set1.add(p1);
            set1.add(p2);
            set1.add(p3);
            set1.add(p4);
            for(Person p:set1) {
                  System.out.println(p.name+""+p.age);
            }
      }
}

结果:

treesetImage.png

声明:Masque's Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - JAVA学习之集合


0.0