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

来源:互联网 发布:linux locale命令 编辑:程序博客网 时间:2024/05/24 03:19
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的下标:0User{id=3}User{id=5}User{id=8}User{id=10}User{id=1}    20
0 0
原创粉丝点击