题目
set容器的使用
容器名前面有linked表示链表的方式
有tree表示是进行排序的
HashSet
1)可以放入空值;
2)传入元素时,调用HashCode方法获取hash值,然后决定存储位置;
LinkedHashSet
1)HashSet的子类,使用HashCode确定在集合中的位置,使用链表的方式确定位置(有序,按照输入的顺序输出)
TreeSet
1)默认情况下,直接使用TreeSet无参构造器创建Set的对象,在其中放入元素时,必须实现Comparable接口(用于排序),
按照compareTo方法排序;
2)若创建TreeSet对象时,传入了一个实现Comparator接口的类,则TreeSet使用Comparator接口的compare方法排序,
此时集合中的元素无需实现Comparable接口;如果放入了实现Comparable接口的元素,以Comparator为标准 。
toArray()方法:
如果是这样:
class Solution {
public String[] findOcurrences(String text, String first, String second) {
String[] texts =text.split(" ");
ArrayList<String> res = new ArrayList<>();
String[] temp=new String[0];
int flag=0;
for(int i=0;i<texts.length;i++){
if(i>=2&&texts[i-2].equals(first)&&texts[i-1].equals(second))res.add(texts[i]);
}
return res.toArray();//****这行代码****
}
}
重载方法是传递一个用户想要的数组类型的一个数组实例进去,多长都无所谓(因此我们常常使用一个0长度的,毕竟把类型带进去就OK了),于是,toArray内部就会按照你想要的这种类型,给构造一个数组出来。这样构造出来的数组,当然是很安全地被调用者转换回那个实际的类型
改成这样就好了,传入一个这个类型的实例:
return res.toArray(temp);