当前位置: 首页 > news >正文

网站建设构架服务器ip做网站

网站建设构架,服务器ip做网站,sem搜索,江苏做电缆桥架的公司网站Java基础之集合类 一、集合的框架1.1、集合概述1.2、集合与数组区别1.3、数组的缺点#xff1a;1.4、常用集合分类1.5、Collection常用方法 二、List集合2.1、ArrayList2.2、LinkedList2.3、Vector2.4、区别 三、Set集合3.1、HashSet集合3.2、LinkedHashSet集合3.3、TreeSet集… Java基础之集合类 一、集合的框架1.1、集合概述1.2、集合与数组区别1.3、数组的缺点1.4、常用集合分类1.5、Collection常用方法 二、List集合2.1、ArrayList2.2、LinkedList2.3、Vector2.4、区别 三、Set集合3.1、HashSet集合3.2、LinkedHashSet集合3.3、TreeSet集合 四、Map集合4.1、HashMap4.2、TreeMap4.3、HashTable 一、集合的框架 1.1、集合概述 所有的集合类和集合接口都在java.util包下。在内存中申请一块空间用来存储数据在Java中集合就是替换掉定长的数组的一种引用数据类型。 1.2、集合与数组区别 区别集合数组长度大小可以变用多少空间拿多少空间。长度固定定义长了造成内存空间的浪费定义短了不够用。内容能存储引用数据类型存储的为对象的内存地址存储基本数据类型和引用数据类型元素可以存储不同类型数据一般情况下也只存储同一种类型的数据只能存储同一种类型成员 1.3、数组的缺点 数组一旦初始化长度、类型就不能再改变了只能按照初始化的数据类型和长度进行存储数据了。数组中提供的方法比较有限对于数据的增删改查操作不方便并且效率也不太高。可以存储重复的值并且有序特点单一。 1.4、常用集合分类 Collection 接口的接口 对象的集合单列集合 ├——-List 接口元素按进入先后有序保存可重复 │—————-├ LinkedList 接口实现类 链表 插入删除 没有同步 线程不安全 │—————-├ ArrayList 接口实现类 数组 随机访问 没有同步 线程不安全 │—————-└ Vector 接口实现类 数组 同步 线程安全 │ ———————-└ Stack 是Vector类的实现类 └——-Set 接口 仅接收一次不可重复并做内部排序 ├—————-└HashSet 使用hash表数组存储元素 │————————└ LinkedHashSet 链表维护元素的插入次序 └ —————-TreeSet 底层实现为二叉树元素排好序 Map 接口 键值对的集合 双列集合 ├———Hashtable 接口实现类 同步 线程安全 ├———HashMap 接口实现类 没有同步 线程不安全- │—————–├ LinkedHashMap 双向链表和哈希表实现 │—————–└ WeakHashMap ├ ——–TreeMap 红黑树对所有的key进行排序 └———IdentifyHashMap 注意 ①List接口用于存储有序的、可重复的数据可以想象成动态的数组 ②Set接口存储无序的、不可重复的数据类似于高中的集合 //Collection源码如下 public interface CollectionE extends IterableE {1.5、Collection常用方法 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;public class CollectionExample {public static void main(String[] args) {// 创建一个ArrayListCollectionString stringList new ArrayList();// 添加元素stringList.add(Apple);stringList.add(Banana);stringList.add(Orange);// 获取集合大小int size stringList.size();System.out.println(Size: size);// 判断集合是否为空boolean isEmpty stringList.isEmpty();System.out.println(Is Empty: isEmpty);// 判断集合是否包含元素boolean containsBanana stringList.contains(Banana);System.out.println(Contains Banana: containsBanana);// 删除元素boolean removed stringList.remove(Orange);System.out.println(Removed Orange: removed);// 获取集合迭代器并遍历IteratorString iterator stringList.iterator();while (iterator.hasNext()) {String element iterator.next();System.out.println(Element: element);}// 添加多个元素CollectionString anotherList new ArrayList();anotherList.add(Grapes);anotherList.add(Pineapple);stringList.addAll(anotherList);// 转换为数组Object[] array stringList.toArray();System.out.println(Array: java.util.Arrays.toString(array));// 清空集合stringList.clear();System.out.println(Size after clear: stringList.size());} }二、List集合 2.1、ArrayList //ArrayList构造方法 public ArrayList(int initialCapacity)//构造一个具有指定初始容量的空列表。 public ArrayList() //默认构造一个初始容量为10的空列表。 public ArrayList(Collection? extends E c)//构造一个包含指定 collection 的元素的列表代码示例 import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class ArrayListExample {public static void main(String[] args) {// 创建 ArrayListListString arrayList new ArrayList();// 添加元素arrayList.add(Apple);arrayList.add(Banana);arrayList.add(Orange);// 获取元素String firstElement arrayList.get(0);System.out.println(First Element: firstElement);// 修改元素arrayList.set(1, Grapes);// 删除元素arrayList.remove(Orange);// 获取 ArrayList 大小int size arrayList.size();System.out.println(Size: size);// 判断是否包含某个元素boolean containsBanana arrayList.contains(Banana);System.out.println(Contains Banana: containsBanana);// 遍历 ArrayList使用增强 for 循环System.out.println(Iterating using enhanced for loop:);for (String fruit : arrayList) {System.out.println(fruit);}// 遍历 ArrayList使用迭代器System.out.println(Iterating using Iterator:);IteratorString iterator arrayList.iterator();while (iterator.hasNext()) {String fruit iterator.next();System.out.println(fruit);}// 转换为数组Object[] array arrayList.toArray();System.out.println(Array: java.util.Arrays.toString(array));// 清空 ArrayListarrayList.clear();// 判断是否为空boolean isEmpty arrayList.isEmpty();System.out.println(Is Empty: isEmpty);} }2.2、LinkedList LinkedList 是 Java 集合框架中 List 接口的另一个实现基于链表实现。相比于 ArrayListLinkedList 在插入和删除元素的操作上更为高效但在随机访问方面较慢。 代码示例 import java.util.LinkedList; import java.util.Iterator; import java.util.List;public class LinkedListExample {public static void main(String[] args) {// 创建 LinkedListListString linkedList new LinkedList();// 添加元素linkedList.add(Apple);linkedList.add(Banana);linkedList.add(Orange);// 获取元素String firstElement linkedList.get(0);System.out.println(First Element: firstElement);// 修改元素linkedList.set(1, Grapes);// 删除元素linkedList.remove(Orange);// 获取 LinkedList 大小int size linkedList.size();System.out.println(Size: size);// 判断是否包含某个元素boolean containsBanana linkedList.contains(Banana);System.out.println(Contains Banana: containsBanana);// 遍历 LinkedList使用增强 for 循环System.out.println(Iterating using enhanced for loop:);for (String fruit : linkedList) {System.out.println(fruit);}// 遍历 LinkedList使用迭代器System.out.println(Iterating using Iterator:);IteratorString iterator linkedList.iterator();while (iterator.hasNext()) {String fruit iterator.next();System.out.println(fruit);}// 转换为数组Object[] array linkedList.toArray();System.out.println(Array: java.util.Arrays.toString(array));// 清空 LinkedListlinkedList.clear();// 判断是否为空boolean isEmpty linkedList.isEmpty();System.out.println(Is Empty: isEmpty);} }以下情况使用 ArrayList : 频繁访问列表中的某一个元素。只需要在列表末尾进行添加和删除元素操作。 以下情况使用 LinkedList : 你需要通过循环迭代来访问列表中的某些元素。需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。 2.3、Vector //构造方法 public Vector()//使用指定的初始容量和等于0的容量增量构造一个空向量。 public Vector(int initialCapacity)//构造一个空向量使其内部数据数组的大小其标准容量增量为零。 public Vector(Collection? extends E c)//构造一个包含指定 collection 中的元素的向量 public Vector(int initialCapacity,int capacityIncrement)//使用指定的初始容量和容量增量构造一个空的向量 代码示例 import java.util.Vector; import java.util.Enumeration;public class VectorExample {public static void main(String[] args) {// 创建 VectorVectorString vector new Vector();// 添加元素vector.add(Apple);vector.add(Banana);vector.add(Orange);// 获取元素String firstElement vector.get(0);System.out.println(First Element: firstElement);// 修改元素vector.set(1, Grapes);// 删除元素vector.remove(Orange);// 获取 Vector 大小int size vector.size();System.out.println(Size: size);// 判断是否包含某个元素boolean containsBanana vector.contains(Banana);System.out.println(Contains Banana: containsBanana);// 遍历 Vector使用增强 for 循环System.out.println(Iterating using enhanced for loop:);for (String fruit : vector) {System.out.println(fruit);}// 遍历 Vector使用 EnumerationSystem.out.println(Iterating using Enumeration:);EnumerationString enumeration vector.elements();while (enumeration.hasMoreElements()) {String fruit enumeration.nextElement();System.out.println(fruit);}// 转换为数组Object[] array vector.toArray();System.out.println(Array: java.util.Arrays.toString(array));// 清空 Vectorvector.clear();// 判断是否为空boolean isEmpty vector.isEmpty();System.out.println(Is Empty: isEmpty);} }2.4、区别 ArrayListLinkedListVector实现方法动态数组双向链表动态数组线程是否安全非线程安全非线程安全线程安全适用场景适用于需要频繁随机访问元素而且不涉及多线程的场景。适用于需要频繁插入和删除元素的场景但不涉及多线程。由于线程安全性带来的性能损失不推荐在单线程环境下使用。 1ArrayList底层数据结构是数组查询快增删慢线程不安全效率高可以存储重复元素 2LinkedList 底层数据结构是链表查询慢增删快线程不安全效率高可以存储重复元素 3Vector:底层数据结构是数组查询快增删慢线程安全效率低可以存储重复元素 在多线程环境下如果需要线程安全可以考虑使用 Collections.synchronizedList() 来包装 ArrayList 或 LinkedList。 三、Set集合 Set 是 Java 集合框架中的一种接口它代表无序、不允许重复元素的集合。需要实现类来进行操作。 特点 不允许有重复的值没有索引不能使用普通for循环进行遍历 3.1、HashSet集合 特点 底层结构为“哈希表”集合对读写顺序不做保证允许有null值Set集合内容不允许重复没有索引 HashSet 类位于 java.util 包中使用前需要引入它语法格式如下 import java.util.HashSet; // 引入 HashSet 类以下实例我们创建一个 HashSet 对象 sites用于保存字符串元素 HashSetString sites new HashSetString();代码示例 import java.util.HashSet;/*** BelongsProject: Test* BelongsPackage: PACKAGE_NAME* Author: Jorya* CreateTime: 2023-11-22 16:20* Description: TODO* Version: 1.0*/ public class HashSetTest {public static void main(String[] args) {HashSetString sites new HashSetString();sites.add(Google);sites.add(Jorya);sites.add(Taobao);sites.add(Zhihu);sites.add(Jorya); // 重复的元素不会被添加System.out.println(sites.size());//计算元素数量System.out.println(sites);System.out.println(sites.contains(Taobao));//truesites.remove(Taobao); // 删除元素删除成功返回 true否则为 falsesites.clear();//删除集合所有元素} }3.2、LinkedHashSet集合 特点 LinkedHashSet是哈希表和链表实现的Set接口具有可预测的读写顺序。 有链表来保证元素有序 有哈希表来保证元素的唯一性 import java.util.HashSet; public class LinkedHashSetTest {public static void main(String[] args) {LinkedHashSetString sites new LinkedHashSetString();sites.add(Google);sites.add(Jorya);sites.add(Taobao);sites.add(Zhihu);sites.add(Jorya); // 重复的元素不会被添加System.out.println(sites);} }3.3、TreeSet集合 特点 集合底层是二叉树TreeSet集合中的元素和TreeMap集合中的key部分一样元素是无序不可重复、可以按照大小顺序自动排序 四、Map集合 Map键值对集合集合中按Key-Value键值对方式存储 4.1、HashMap 特点 无序key不可重复keyvalue都可以为null key为null的时候存储在HashMap的第一个位置当key相同时新的value会覆盖旧的value 4.2、TreeMap 特点 底层是红黑树 无序 key不可重复存储映射的关系过程中需要key使用 自然排序或传递比较器比较器根据key进行排序key不能为null value可以为null添加相同 key 时新的value会覆盖旧的value底层自然排序的compareTo() 或比较器compare()方法返回值为0调用t.setValue(value),实现新的值覆盖旧的值 4.3、HashTable 特点 无序、key不可重复keyvalue不可为空
http://wiki.neutronadmin.com/news/168389/

相关文章:

  • 单页企业网站模板涂料网站源码
  • 西昌做网站沪尚茗居全包价格
  • 信息展示网站系统中煤建设集团网站
  • 邯郸网站制作设计玉器珠宝做网站
  • 在线学习平台网站建设有什么功能网站架构的重要性
  • 建筑装饰网站模板免费的舆情网站入口在哪
  • 网站做邮箱吗怎么设置网站支付功能
  • 做企业网站的流程wordpress微信登录设置
  • 焦作专业做网站公司哪家好怎么看网站是哪家公司做的
  • 网站建设公司好做吗php网站整合discuz
  • 苏州做网站优化公司哪家好开源网
  • 怎么做好手机网站开发网站公司名称大全
  • 做简历网站aspcms建站
  • 阿里巴巴建设网站首页为了加强公司网站建设
  • 在哪个网站做劳动用工备案门户网站建设工作领导小组
  • 如何做手机网站cms傻瓜式建站系统
  • 做网站为什么要用php电子商务主要学什么主要干啥
  • 婚礼纪网站怎么做请帖企业怎么做网站
  • 做网站开发很赚钱吗专业做网站的团队
  • 无锡微信网站定制江西省飞宏建设工程有限公司 网站
  • 自己怎么做网站卖车wordpress域名网站搬家
  • 天津购物网站搭建成都个人做网站
  • 兰州建设工程信息网站wordpress 外观自定义
  • 网站欢迎屏怎么做上海注册公司没有地址怎么办
  • iis做的网站手机怎么访问wordpress 培训
  • 做企业网站需要什么资料常州建设工程质量监督网站
  • jsp网站服务建设开题报告柬埔寨网站建设
  • 网站建设多少钱十年乐云seo在线p图网页版免费
  • o2o网站建设如何上传下载文件网站开发的php源码
  • 哪家公司建网站好给公司起名字大全免费