集合框架
程序员文章站
2022-01-15 10:58:31
...
集合框架
定义: 集合和数组类似,只不过集合的数据可以动态变化
List
ArrayList集合
ArrayList集合存储的数据,有序,可以重复
初始容量为10的口列表
底层是Object数组
因为有下表,增删很慢,查询很快
案例:
ArrayList<String> list=new ArrayList();
list.add("谢老板");
list.add("派大星");
list.add("画面宝宝");
list.add("倒霉熊");
//根据类容清除
//集合对象名.remove("内容");
list.remove("画面宝宝");
//根据下标清楚
//集合对象名.remove(下标);
//如果集合类型为Integer使用下表进行删除可能会出现报错情况
list.remove(0);
//通过下表修改集合内容
//集合对象名.set(集合下表,"集合内容");
list.set(0,"谢保王");
//清空列表所有数据
list.clear();
//单个查询
//返回值类型 对象名=集合对象名.get(下标)
String getList=list.get(0);
System.out.println(getList);
//lambda表达式遍历数据(jdk1.8以上才有)
//集合对象名.forEach(自定义名->{代码块})
list.forEach(temp->{
System.out.println(temp);
});
LinkedList集合
LinkedList和ArrayList集合语法一样
LinkedList增删特别快,查询慢
案例
LinkedList<String> bookList1=new LinkedList();
bookList1.add("java从门到放弃");
bookList1.add("HTML+SSM从入门到精通");
bookList1.add("Mysql从入门到秃头");
bookList1.add("oop从入门到放弃");
bookList1.add("三分钟带你精通高并发带你拿高薪");
//集合转数组,返回值为Object类型
//数组接收类型[] 对象名 = 集合对象名.toArray();
Object[] object = bookList1.toArray();
for (Object obj: object) {
System.out.println(obj);
}
//吧一个集合里面的数据放到另一个集合中
// 对象名2.addAll(对象名1);对象名1的集合数据放到对象名2的集合中
LinkedList<String> bookList2=new LinkedList();
bookList2.addAll(bookList1);
set
set集合:存储数据无序,不可重复
HashSet
HashSet extends(继承) Abstractset
Hashset初始容量为16,加载因子是0.75
底层是哈希表
案例:
Set<String> hashSet=new HashSet<String>();
hashSet.add("喜羊羊");
hashSet.add("村长");
hashSet.add("懒羊羊");
hashSet.add("沸羊羊");
hashSet.add("美羊羊");
//由于底层是哈希表,没有下标,只能提供内容删除
hashSet.remove("喜羊羊");
//在HashSet中没有修改,修改要先删除在添加
//吧懒洋洋修改成灰太狼
hashSet.remove("懒洋洋");
hashSet.add("灰太狼");
//判断元素是否存在
boolean folg = hashSet.contains("喜羊羊");
System.out.println(folg);
//遍历
hashSet.forEach(temp->{
System.out.println(temp);
});
TreeSet
TreeSet:底层是二叉树,不可以重复,(实现了Comparable,Comparator接口类型)可以进行排序(8大数据类型可以进行排序,中文是通过首拼排序)
Set<Integer> treeSet=new TreeSet<>();
treeSet.add(12);
treeSet.add(32);
treeSet.add(30);
treeSet.add(88);
treeSet.add(-1);
treeSet.add(24);
treeSet.forEach(tmep-> System.out.print(tmep+"\t"));
System.out.println("\n\n"+"------------国际专业分割线-------------"+"\n");
Set<String> treeSet2=new TreeSet<>();
treeSet2.add("海绵宝宝");//h
treeSet2.add("派大星");//p
treeSet2.add("光头强");//g
treeSet2.add("谢老板");//x
treeSet2.add("章鱼哥");//z
treeSet2.add("熊大");//x
treeSet2.forEach(tmep-> System.out.print(tmep+"\t"));
上一篇: PHP算法练习三:交换字符串中第一个和最后一个字符
下一篇: 两级普通list转树形结构