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