

List:

ArrayList和HashSet

ArrayList:
public class collec {
public static void main(String[] args) {
Collection<String> a=new ArrayList<>();
//添加
a.add("sd");
a.add("d");
//遍历
for(String ele:a){
System.out.println(ele);
}
//清空
a.clear();
//判断是否为空
System.out.println(a.isEmpty());
//获取集合的大小
System.out.println(a.size());
//判断集合是否含有某个元素
System.out.println(a.contains("sd"));
//删除某个元素,默认只会删除第一个,而不会删除所有
a.remove("d");
//把集合转为数组
Object[] o=a.toArray();
System.out.println(Arrays.toString(o));
//合并两个数组
Collection<String> c1=new ArrayList<>();
c1.add("21");
c1.add("ew");
Collection<String> c2=new ArrayList<>();
c2.add("dqw");
c1.addAll(c2);//把c2的元素加入c1
}
}
LinkedList:
集合的并发修改异常问题(会出现删除后,被删除元素后面一个元素往前移一格,但指针又自己向右移动,这样导致位置不对)
下面是个正确的例子,删除list中所有内容为java的元素
List<String> list=new ArrayList<>();
list.add("黑马");
list.add("java");
list.add("java");
list.add("赵敏");
System.out.println(list);
//需求:删除全部“java"信息
Iterator<String> it=list.iterator();
while(it.hasNext()){
String ele=it.next();
if("java".equals(ele)){
it.remove();//要用迭代器的删除方法,这个会删除当前位置的元素,并保证指针不后移。
}
}
//用for循环从后面删除时,就不会出现漏删的bug.或者在if里,remove后加一个i--
for(int i=list.size()-1;i>=0;i--){
String ele=list.get(i);
if("java".equals(ele)){
list.remove("java");
}
}
set:

HashSet<String> a=new HashSet<>();
a.add("d");
a.add("d");
System.out.println(a);//d

LinkedHashSet:

TreeSet:



自定义比较器,自定义的比较规则
方式一:类自定义比较规则

方式二:集合自带比较器对象进行规则定制

总结:


浙公网安备 33010602011771号