Set、Map、list的排序,應用及案例

package ToString;

import java.util.ArrayList;

/**
 * Created by Administrator on 2017/5/8.
 */
public class Myclass {
    int number;
    public ArrayList list;
    public String str;

    public Myclass(int number, ArrayList list, String str) {
        this.number = number;
        this.list = list;
        this.str = str;
    }
    @Override
    public String toString() {
        return "Myclass{" +
                "number=" + number +",str="+str+",list="+list+
                '}';
    }

    @Override
    public boolean equals(Object o) {
        Myclass my = (Myclass) o;
        if (my.number==this.number&&my.str.equals(this.str)&&this.list.equals(my.list)){
            return true;
        }
        return false;
    }

    @Override
    public int hashCode() {
        return number+str.hashCode()+list.hashCode();
    }
}
package ToString;

/**
 * Created by Administrator on 2017/5/8.
 */
public class User {
    public int id;

    public User(int id) {
        this.id = id;
    }

    @Override
    public boolean equals(Object o) {
        User user = (User) o;
        if (user.id==this.id){
            return true;
        }
         return false;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                '}';
    }

    @Override
    public int hashCode() {
        return id;
    }
}
package ToString;

import java.util.*;

/**
 * Created by Administrator on 2017/5/8.
 */
public class Test {
    public static void main(String[] args) {
        Set set = new HashSet();
        set.add(new Myclass(1,new ArrayList(){{add("a");add("b");}},"yyy"));
        set.add(new Myclass(2,new ArrayList(){{add("c");add("v");}},"wft"));
        set.add(new Myclass(3,new ArrayList(){{add("e");add("f");}},"fff"));
        set.add(new Myclass(4,new ArrayList(){{add("g");add("h");}},"ttt"));
        set.add(new Myclass(5,new ArrayList(){{add("h");add("i");}},"ccc"));

        for (Object num:set) {
            System.out.println(num);
        }

        ArrayList list = new ArrayList();
        list.add(new User(5));
        list.add(new User(8));
        list.add(new User(3));
        list.add(new User(10));
        list.add(new User(5));

          //排序
        //o1>o2 返回1 升序
        //o1<o2 返回-1 降序
        Collections.sort(list, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                User user1 = (User) o1;
                User user2 = (User) o2;
                if (user1.id<user2.id){
                    return -1;
                }else if(user1.id>user2.id){
                    return 1;
                }else {
                    return 0;

                }
            }
        });


        int index = list.indexOf(new User(3));
        System.out.println("id爲3的下標:"+index);
        list.remove(new User(5));


        for (Object user:list) {
            System.out.println(user);
        }
        Map<User,Integer> map = new HashMap<User,Integer>();
        map.put(new User(2),0);
        map.put(new User(2),0);
        map.put(new User(2),0);
        map.put(new User(2),0);
        map.put(new User(2),0);
        for (User user:map.keySet()) {
            if (map.containsKey(new User(2))){
                Integer value= map.get(new User(2));
                value++;
                map.put(new User(2),value);
            }

        }
        for (int i = 1; i <=100 ; i++) {
            for (int j = 0; j <=20 ; j++) {
                User user = new User(i);
                if (map.containsKey(user)){
                    Integer count = map.get(user);
                    count++;
                    map.put(user,count);
                }else {
                    map.put(user,0);
                }
            }
        }

        System.out.println();
        for (User user:map.keySet()) {
            System.out.println(user+"    "+map.get(user));
        }


    }
}
運行結果:
Myclass{number=2,str=wft,list=[c, v]}
Myclass{number=3,str=fff,list=[e, f]}
Myclass{number=4,str=ttt,list=[g, h]}
Myclass{number=5,str=ccc,list=[h, i]}
Myclass{number=1,str=yyy,list=[a, b]}
id爲3的下標:0
User{id=3}
User{id=5}
User{id=8}
User{id=10}


User{id=1}    20
發佈了54 篇原創文章 · 獲贊 68 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章