列举几个Java中Collection类库中的常用类(集合相关一)

  • Java中的集合框架是指一系列存储数据的接口和类,这些类和接口都位于java.util包中
  •    使用集合框架可以解决复杂的数据存储问题,Java中内置了丰富的集合框架

 List接口、类关系图

 ArrayList用法类似于数组,且其容量可按需要动态调整,亦被称为动态数组

LinkedList表示链表的操作类,它同时实现了List和Queue接口。它的优点在于向集合中插入、删除元素时效率比较高,
特别是可以直接对集合的首部和尾部元素进行插入和删除操作,LinkedList提供了专门针对首尾元素的方法,

Set接口、类关系图

Set集合存储顺序无序,不可以保存重复元素。

Set接口常用实现类:HashSet

import java.util.*;
public class SetDemo {
    public static void main(String args[]){
        Set set = new HashSet();
        set.add("apple");//添加元素
        set.add("orange");//添加元素
        set.add("pear");
        set.add("pear");//重复元素不能加入
        set.add("banana");
                  System.out.println(set);
    }
}

HashSet类中没有提供根据集合索引获取索引对应的值的方法,     
因此遍历HashSet时需要使用Iterator迭代器。Iterator的主要方法如下

public static void main(String args[]) {
           Set set = new HashSet();
           set.add("apple");
           set.add("orange");
           set.add("pear");
           set.add("pear");//重复元素不能加入
           set.add("banana");
           Iterator iterator = set.iterator();
        
           while(iterator.hasNext())
             {
            System.out.println(iterator.next());
             }      
 }

Set接口常用实现类:TreeSet

TreeSet是可以保持自然顺序或者定义的比较器比较的结果顺序的Set集合。

import java.util.*;
public class SetDemo {
    public static void main(String args[]){
        TreeSet set = new TreeSet();
            set.add("kkkkk");
            set.add("ddddd");
            set.add("vvvvv");
            set.add("eeeee");
 set.add("kkkkk");                 

System.out.println(set);
    }
}


 

当TreeSet集合中加入一个对象时,会把它插入到有序的对象序列中。TreeSet支持两种排序方式:自然排序和自定义排序。默认情况下TreeSet采用自然排序方式。

自定义排序:

制作一个比较器

package com.xintouyun.jihe.zidingyipaixutest;

import java.util.Comparator;

import com.xintouyun.jihe.zidingyipaixutest.Custumer;

public class CustumerComparator implements Comparator<Object> {
    public int compare(Object obj1, Object obj2) {
        Custumer c1 = (Custumer)obj1;
        Custumer c2 = (Custumer)obj2;
        if(c1.getName().compareTo(c2.getName())>0)
            return 1;
        if(c1.getName().compareTo(c2.getName())<0)
            return -1;
        return 0;
        }
}

测试类:

package com.xintouyun.jihe.zidingyipaixutest;

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

import com.xintouyun.jihe.zidingyipaixutest.Custumer;

public class test {
    public static void main(String[] args) {
        //创建set对象传入一个参数比较器
            Set<Custumer> set = new TreeSet<Custumer>(new CustumerComparator());
            Custumer custumer1 = new Custumer("Bluce", 15);
            Custumer custumer2 = new Custumer("Jack", 18);
            Custumer custumer3 = new Custumer("Rose", 25);
            Custumer custumer4 = new Custumer("rose", 25);
            set.add(custumer1);
            set.add(custumer2);
            set.add(custumer3);
            set.add(custumer4);
            Iterator<Custumer> it = set.iterator();
            while(it.hasNext())
            {
                Custumer custumer  =(Custumer)it.next();
                System.out.println(custumer.getName() + "\t" + custumer.getAge());
            }
    }
}

实体类:

package com.xintouyun.jihe.zidingyipaixutest;

public class Custumer {
        private String name;//姓名
        private int age;    //年龄
        Custumer(String name,int age){
            this.age=age;
            this.name=name;
        }
        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;
        }
        
    }
    
            

猜你喜欢

转载自blog.csdn.net/qq_40180411/article/details/81414585