Java__单列集合Collection中List接口与Set接口的简单应用
程序员文章站
2022-06-13 18:08:05
...
Java__单列集合Collection中List接口与Set接口的简单应用
集合:集合是java中提供的一种容器,可以用来存储多个数据。
集合和数组都是容器,其区别主要有:
1、数组的长度是固定的。集合的长度是可变的。
2、数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。
集合按照其存储结构可以分为两大类,分别是单列集合和双列集合,本章主要讲单列集合Collection。
用Collection coll = new ArrayList();多态方式,直接创建一个等待添加新数据的空集合。相应操作看下列代码输出注释。
public static void collectionMethod() {
Collection coll = new ArrayList();
coll.add("good");
coll.add("boy");
coll.add(123);
System.out.println("coll中的元素:"+coll);
Collection coll2 = new ArrayList();
coll2.add("good");
coll2.add("NewBird");
System.out.println("coll2中的元素:"+coll2);
System.out.println("判断good是否在coll中:"+coll.contains("good"));
coll.remove(123);
System.out.println("移除元素123:"+coll);
coll.removeAll(coll2);
System.out.println("移除coll与coll2的交集元素"+coll);
coll.clear();
System.out.println("清空coll中的元素:"+coll);
System.out.println("判断coll是否为空:"+coll.isEmpty());
}
单列集合有两个子接口分别为:List和Set;他们之间的区别:List的特点是元素有序、元素可重复,Set的特点是元素无序,而且不可重复。List主要实现的是ArrayList和LinkedList,Set主要实现的有HashSet和TreeSet。
List以ArrayList为例:
public static void arrayListMethod() {
List list = new ArrayList();
list.add("小狗");
list.add("小猫");
list.add("小熊");
System.out.println("list中元素:"+list);
/**
* add(要插入的下标,元素)
*/
list.add(2, "小豹子");
System.out.println("插入“小豹子”到下标为2的地方:"+list);
// 迭代器Iterator
ListIterator it = list.listIterator();
// 遍历
for(;it.hasNext();) {
//将下标为1的元素修改为“小鹿”
list.set(1, "小鹿");
System.out.print(it.next()+"\t");
}
运行结果:
list中元素:[小狗, 小猫, 小熊]
插入“小豹子”到下标为2的地方:[小狗, 小猫, 小豹子, 小熊]
小狗 小鹿 小豹子 小熊
HashSet和TreeSet的简单了解:
public static void SetMethod() {
Set set = new TreeSet();
set.add("abc");
set.add("acb");
set.add("bac");
set.add("bca");
System.out.println("自然顺序排列Set"+set);
Set set2 = new HashSet();
set2.add("小虹");
set2.add("小兰");
set2.add("小乔");
set2.add("小白");
set2.add("小兰");
System.out.println("无序排列Set2"+set2);
}
运行结果:
```java
自然顺序排列Set[abc, acb, bac, bca]
无序排列Set2[小虹, 小白, 小兰, 小乔]
集合中的接口导入都是在util包下面的故导入方式为import java.util.+接口;
最后总结:ArrayList和LinkedList的区别:
1、ArrayList底层是数组结构,查询和修改快,时间复杂度为1。
2、LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢,时间复杂度为n。
共同点:都是线程不安全的。
上一篇: 继承在接口中的简单应用
下一篇: Map接口_简单应用