Arrays.asList(): 接收一个数组或者一个用逗号分隔的元素列表,转化成List
Collections.addAll():j接收一个collection对象,以及一个数组或者一个用逗号分隔的元素列表,将元素添加到collection对象中。
Set:
HashSet的add()源码:
使用了散列函数,避免重复元素的添加
public boolean add(E e) {
//只要元素e是重复的,map.put(e, PRESENT)就!=null
return map.put(e, PRESENT)==null;
}
验证map.put()方法
public class Content {
private Map<String, Integer> map = new HashMap<>();
public static void main(String[] args) {
Content content = new Content();
Integer integer1 = content.map.put("a", 1);
System.out.println(integer1);//返回的是null
Integer integer2 = content.map.put("a", 5);
System.out.println(integer2);//返回的是 1
/*if(content.map.put("a", 4)!=null){
System.out.println("error");
new Exception("eee");
}*/
}
}
foreach语句
任何实现了Iterable接口的类,它的对象都能用于foreach语句中
看下面的程序: IterableClass对象 可以放入for循环中(默认隐式地调用iterator()方法)
import java.util.Iterator;
public class IterableClass implements Iterable<String>{
private String[] words = "I love you but reality is crud!".split(" ");
@Override
public Iterator<String> iterator() {
return new Iterator<String>() {
private int counter;
@Override
public boolean hasNext() {
return counter!=words.length;
}
@Override
public String next() {
return words[counter++];
}
};
}
public static void main(String[] args) {
IterableClass ic = new IterableClass();
for(String s: ic){//注意这里
System.out.print(s+" ");
}
}
}