Java基础---集合类

2020-01-16  本文已影响0人  胡伟红

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常见的一种方式

数组虽然可以存储对象,但长度是固定的:集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。

集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

image.png

1.ArrayList

//创建一个集合容器,使用Collection接口的子类,ArrayList
ArrayList a1 = new ArrayList();
//添加元素
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");
//打印原集合
System.out.println(a1);
//删除元素
a1.remove("java02");
//删除后的集合
System.out.println(a1);
//判断元素是否存在
System.out.println("java03是否存在"+a1.contains("java03"));
//获取个数,集合的长度
System.out.println("size:"+a1.size());
//清除集合元素
a1.clear();
System.out.println("size:"+a1.size());

System.out.println("集合是否为空?"+a1.isEmpty());

运行结果:
[java01, java02, java03, java04]
[java01, java03, java04]
java03是否存在true
size:3
size:0
集合是否为空?true

ArrayList a1 = new ArrayList();
//添加元素
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");

ArrayList a2 = new ArrayList();
//添加元素
a2.add("java01");
a2.add("java02");
a2.add("java05");
a2.add("java06");
a1.retainAll(a2);//去交集,all中只会保留和a2中相同的元素
a1.removeAll(a2);//去掉a1中与a2中元素相同的元素
System.out.println("a1:"+a1);
System.out.println("a2:"+a2);

运行结果:
a1:[java01, java02]
a2:[java01, java02, java05, java06]
a1:[]
a2:[java01, java02, java05, java06]

image.png


add(index,element);
addAll(index,Colllection);

remove(index);

set(index,element);

get(index);
subList(from,to);
listIterator();

ArrayList a1 = new ArrayList();
//添加元素
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java04");

//修改元素
a1.set(1,"java05");

//get(1)通过角标获取元素
for(int x = 0;x< a1.size(); x++){
System.out.println("a1("+ x +") = "+ a1.get(x));
}

Iterator it = a1.iterator();
while(it.hasNext()){
System.out.println("next:"+ it.next());
//通过indexOf获取对象的位置
System.out.println("index="+a1.indexOf("java03"));
}

运行结果:
a1(0) = java01
a1(1) = java05
a1(2) = java03
a1(3) = java04
next:java01
next:java05
next:java03
next:java04
index=2
//通过下标获取一个子List
List sub = a1.subList(1,3);
System.out.println("sub="+sub);
sub=[java05, java03]

2.HashSet

Set和Collection的功能是一致
|---HashSet底层结构是哈希表
存储唯一元素并允许空值
保持插入顺序
不是线程安全的
|---TreeSet

Set<String>hashSet = new HashSet<>();
hashSet.add("String add01");
hashSet.add("String add02");
hashSet.add("String add03");
hashSet.add("String add04");//true
hashSet.add("String add04");//faulse
hashSet.add("String add04");//faulse
System.out.println(hashSet);

和表中存储的时候的顺序不一定一致,保持唯一性,存储多个相同的值,是存储不进去的
运行结果:
[String add01, String add04, String add03, String add02]

上一篇下一篇

猜你喜欢

热点阅读