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);
    }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值