java常用的几种集合类以及实现方法

目录

集合类图

List集合

Set集合

Map集合


集合类图

 在UML类图中,常见的几种关系:

泛化:是一种继承关系,表示一般与特殊关系,指定了子类如何特化父类的所有特征行为。例如:老虎是动物的一种,即老虎的特性也有动物的共性

实现类与接口的关系,表示接口所有特征和行为的实现。

关联:是一种拥有的关系,它使一个类知道另一个类的属性和方法,关联分为双向和单向。例如:老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

聚合整体与部分的关系,且部分可以离开整体单独存在。例如:车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在

组合:是整体与部分的关系.,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期

依赖:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。

关系的强弱顺序:泛化= 实现> 组合> 聚合> 关联> 依赖 

List集合

list集合特点:元素有序,且可重复

遍历方法:下标,foreach,迭代器

list集合实现方法:ArrayList、LinkedList、Vector、CopyOnWriteArrayList

使用junit测试,代码更简单

基本的遍历循环方法

@Test
	public void listAdd() {
		List<Integer> list = new ArrayList<>();
		list.add(1);
		list.add(3);
		list.add(5);
		list.add(4);
		System.out.println(list);
	}

private List<Integer> list = new ArrayList<>();
	
	 @Before
	 public void setup() {
	 list.add(1);
	 list.add(3);
	 list.add(5);
	 list.add(4);
	 }
     // 第一种遍历方法
	 @Test
	 public void list1() {
	 for (int i = 0; i < list.size(); i++) {
	 System.out.println(list.get(i));
	 }
	 }
	 //第二种遍历方法
	 @Test
	 public void list2() {
	 for (Integer integer : list) {
	 System.out.println(integer);
	 }
	 }
//迭代器
@Test
	 public void list3() {
	 Iterator<Integer> iterator = list.iterator();
	 while (iterator.hasNext()) {
	 System.out.println(iterator.next());
	 }
	 }

 ArrayList是最常用的集合

特点:1、简单数据结构,超出容量自动扩容,动态数组

           2、内部实现是基于基础的对象数组的

           3、随机访问快

缺点:1、不适合随机增加或删除

           2、线程不安全

ListedList

特点:1、LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部
           2、LinkedList可被用作堆栈(stack)【包括了push,pop方法】,队列(queue)或双向队列(deque)
           3、以双向链表实现,链表无容量限制,允许元素为null,线程不安全
           4、适合做随机的增加或删除

Vector

Vector内部实现类似于ArrayList。它支持线程同步,某时刻只能有一个线程能够写Vector。但花费很高,所以访问Vector比访问ArrayList慢。(线程安全,并行性能慢)

CopyOnWriteArrayList

特点:1、写时复制
           2、线程安全
           3、 适合于读多,写少的场景
           4、写时复制出一个新的数组,完成插入、修改或者移除操作后将新数组赋值给array
           5、比Vector性能高
           6、最终一致性
           7、实现了List接口,使用方式与ArrayList类似

ArrayList删除方法

package com.zking.list;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.junit.Before;
import
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值