集合和集合的选择

java中的集合介绍

学习东西,首先要知道学习他有什么用,他能够带给我什么样的效果。只有知道什么时候用,怎么用,这样才会对我们有用处,不然百学浪费时间。本篇主要讲解java中的常使用的集合的简单对比,没有讲到集合的细节,更深了解集合的方法就从javaAPI中自己学习更多的。

  • 首先知道java中为什么要用集合这个概念

    1. java操作比较多的数据是一般会用到数组,但是对于对象,数据比较庞大的数据,数组就不能满足java的需求,这样java就定义了集合这个类。

    2. 方便对多个集合进行操作,就使用到集合这个类

  • java中的集合族的基本介绍

    1. Collection是集合类的根接口,Java中没有提供这个接口的直接的实现类。但有继承该类的两大接口类,就是List和 set集合,set集合不能包含重复的元素,List集合是一个有序的集合,可以包含重复的元素。

    2. Map集合Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。和 collection集合最大的区别就是,Map集合是双列的,一般是成对出现的,即(键,值)总是以键值对出现。

    3. java中的单列结合
      java单列结合的家族中,collection是根接口,其下有两个继承子类List和Set集合。List又有ArrayList,vector,LinkedList三个子类 Set有Hashset和Treeset两个子类

单列各个集合底层数据结构和基本性质
List集合:(有序,元素可以重复)
  • ArrayList集合:

    1. 底层数据结构是数组,查找快,增删慢。
    2. 线程不安全,效率高
  • Vector集合:

    1. 底层数据结构是数组,查询快,增删慢
    2. 线程安全,效率低
  • LinkedList集合:

    1. 底层数据结构是链表,查询慢,增删快
    2. 线程不安全,效率高
Set集合(元素不可重复,元素唯一)
  • Hashset集合:

    1. 底层数据结构是哈希表,哈希表依赖两个方法hascode ()和equals()方法
    2. 两个方法的执行顺序:
      首先判断hascode()值是否相同
      是:继续执行equals()方法,看其返回值
      是true:说明元素重复,不添加
      是false:就直接添加元素
      否:就直接添加到集合
  • Treeset集合:

    1. 底层数据结构是二叉树
  • java的双列集合

    1. java中的Map集合是双列的,Map集合是Map集合家族的根接口,它有HashMap和TreeMap集合两个子类。
    2. Map集合中只对键有效,而对值是无效的。
    3. 子类的数据结构:
      Hashmap:底层数据结构是哈希表,Treemap底层数据结构是二叉树,其性质和Set的底层数据结构一样。

java中的集合的使用

  • 如何正确的使用集合?
    集合使用的一般步骤:
    1. 首先创建一个集合
    2. 创建集合的对象
    3.通过集合对象给集合中添加元素
    4.遍历集合元素

  • 代码示例:

记得在java程序中导入包

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

public class ListTest {
public static void main(String[] args) {
//1.创建集合 2.创建元素对象
List list =new ArrayList();
//将元素添加到集合中
list.add("hello");
list.add("jkdjsa");
list.add("java ");
//遍历集合
 Iterator  it=list.iterator();
 while(it.hasNext()){
 String  s=(String ) it.next();
 System.out.println(s);
 }
}

}

运行结果:

hello
jkdjsa
java 
  • 集合的遍历方法:
    作为集合的遍历,其实方法比较多,进行简单的总结如下:
  1. Iterator:迭代输出,是使用最多的输出方式。

  2. ListIterator:是Iterator的子接口,专门用于输出List中的内容。

  3. 增强for循环:

  4. for循环

代码如下:

  1. 迭代器: Iterator it=list.iterator();//创建迭代器对象
    while(it.hasNext()){//循环遍历

    }

  2. for循环 for(int i=0;i<list.size();i++){}

  3. 增强for: for(int x : a){}
    简单介绍一下增强for:增强for:
    格式:
    for(数组或集合的类型 变量名: 数组或集合名){
    直接用变量名
    }
    好处:简化了数组和集合的遍历

  • Map集合的遍历
public class MapDemo {

public static void main(String[] args) {
//创建集合
Map<String ,String > map=new HashMap<String,String>();

//向集合中添加元素
map.put("001", "张三");
map.put("002", "李四");
//遍历集合
/*
* 1.获取所有的键,
* 2.遍历键,得到每一个键
* 3.通过每个键获取每个值
* 
* 
*/
//将所有的键集中到一个集合
Set<String> set=map.keySet();
//遍历键的集合,获取键
for(String key: set){
//根据键去找值
String value=map.get(key);
System.out.println(key+"----"+value);	
}
}
}

java中的集合的选择

根据实际需求来选择合适的集合。

  1. 单列还是双列:
    单列就选Collection类型的,双列选Map类型的
  2. 选择单列后看元素是否唯一
    • 是:选择Set集合
      看元素是否排序:
      1. 是:TreeSet
      2. 否:HashSet
    • 否: 选择List集合
      安全线高低:
      - 高:Vector
      - 低:ArrayList 或LinkedList ’
      1. 增删多:LinkedList
      2. 查询多:ArrayList

记录的存取方式有两种:

  • 一种是顺序存储(数组,ArrayList…)可以根据其下标找到对应的记录
  • 另一种是链接存储(LinkedList…)链接存储(拿单链表为例)则必须找到其前一个记录的位置才能够找到本记录。

for循环便于访问顺序存储的记录,而foreach和迭代器便于访问链接存储。


版权声明:本文为CSDN博主「lq18894033018」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lq18894033018/article/details/79706033

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值