Java学习day09

时间:2022-06-13
本文章向大家介绍Java学习day09,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

2018.6.13 1.增强for循环 //第一个参数是 获得的数据 //第二个是 数组或集合

 for(元素数据类型 元素名 : 数组或者Collection集合) {
                    对元素进行你自己的操作

    }

2.可变参数 必须放在固定参数后边 public void add(T…t) {

} 

Arrays工具类中的一个方法

public static <T> List<T> asList(T... a)

3.Set 无序 唯一 底层数据结构是哈希表(元素是链表的数组)

哈希表依赖于哈希值存储 在set集合存储数据的时候底层使用的是

    int hascode()
    boolean equals(Objext obj)

Object 中的equals 比较的是地址值,需求是比较内容,重写equals即可。


4.LinkedHashSet 有序 唯一 使用链表保证有序,hashCode 保证唯一


5.Map

获取keySet,然后遍历keySet获取值

for(String s: map.keySet()) {
    System.out.print(s +" ");
    System.out.println(map.get(s));
    }

直接遍历值

for (Integer i : map.values()) {
    System.out.println(i);
    }
  System.out.println(map.entrySet());//输出所有键值对

用entrySet遍历map

    Map<String,Integer> map = new HashMap<>();
    Set<Entry<String,Integer>> set = map.entrySet();
    for (Entry<String, Integer> entry : set) {
        system.out.println(entry.getKey(), entry.getValue());
    }

6.集合中放引用类型时,对集合进行排序: 方法一 实现 Comparable接口 重写 调用: //重写

public int compareTo(User u) {
    // TODO Auto-generated method stub
    int temp = this.age-u.age;
    return this.age==u.age?this.name.compareTo(u.name):temp;
    }
   //调用
   Collections.sort(list);
    for (User user : list) {
    System.out.println(user);
    }

方法二 用匿名类:

 public static void main(String[] args) {
    List<User> list = new ArrayList<User>();
    list.add(new User(58,"找我"));
    list.add(new User(28,"权威渠道"));
    list.add(new User(18,"爱的"));        
    list.add(new User(48,"徐奥"));
    Collections.sort(list,
     new Comparator<User>() {
        @Override
    public int compare(User user1, User user2) {
        // TODO Auto-generated method stub
        return user1.getAge()-user2.getAge();
        }

    });
    for (User user : list) {
        System.out.println(user);
    }

    }