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

南京商城网站建设国内做视频网站需要啥

南京商城网站建设,国内做视频网站需要啥,网站建设文献综述,丰城市城乡规划建设局网站1.集合 在内存层面需要针对于多个数据进行存储。此时可以考虑的容器有#xff1a;数组、集合类。 数组存储多个数据方面的特点#xff1a; 数组一旦初始化#xff0c;其长度就是确定的。数组中的多个元素是依次紧密排列的#xff0c;有序的#xff0c;可重复的。数组一…1.集合 在内存层面需要针对于多个数据进行存储。此时可以考虑的容器有数组、集合类。 数组存储多个数据方面的特点 数组一旦初始化其长度就是确定的。数组中的多个元素是依次紧密排列的有序的可重复的。数组一旦初始完成其元素的类型就是确定的。不是此类型的元素无法添加到该数组中。数组中元素的类型既可以是基本数据类型也可以是引用数据类型。 数组存储多个数据方面的弊端 数组一旦初始化其长度就不可变。数组中存储数据特点的单一性。对于无序的、不可重复的场景的多个数据就无能为力。数组中可用的方法、属性都极少。具体的需求都需要自己来组织相关的代码逻辑。针对于数组中元素的删除、插入操作性能较差。 1.1 Java集合框架体系 java.util.Collection存储一个一个的数据。 子接口List存储有序的、可重复的数据”动态“数组。ArrayList主要实现类、LinkedList、Vector。子接口Set存储无序的、不可重复的数据。HashSet、LinkedHashSet、TreeSet。 java.util.Map存储一对一对的数据。 HashMap主要实现类、LinkedHashMap、TreeMap、Hashtable、Properties。 1.2 Collection接口及方法 JDK 不提供此接口的任何直接实现而是提供更具体的子接口如Set 和 List去实现。Collection 接口是 List 和 Set 接口的父接口该接口里定义的方法既可用于操作 Set 集合也可用于操作 List 集合。 1.2.1 常用方法 add(Object obj)添加元素对象到当前集合中。addAll(Collection other)添加 other 集合中的所有元素对象到当前集合中即 this this ∪ other。int size()获取当前集合中实际存储的元素个数。boolean isEmpty()判断当前集合是否为空集合。boolean contains(Object obj)判断当前集合中是否存在一个与 obj 对象 equals 返回 true 的元素。boolean containsAll(Collection coll)判断 coll 集合中的元素是否在当前集合中都存在。即 coll 集合是否是当前集合的“子集”。boolean equals(Object obj)判断当前集合与 obj 是否相等。void clear()清空集合元素。boolean remove(Object obj) 从当前集合中删除第一个找到的与 obj 对象 equals 返回 true 的元素。boolean removeAll(Collection coll)从当前集合中删除所有与 coll 集合中相同的元素。即 this this - this ∩ coll。boolean retainAll(Collection coll)从当前集合中删除两个集合中不同的元素使得当前集合仅保留与 coll 集合中的元素相同的元素即当前集合中仅保留两个集合的交集即 this this ∩ coll。Object[] toArray()返回包含当前集合中所有元素的数组。hashCode()获取集合对象的哈希值。iterator()返回迭代器对象用于集合遍历。 1.2.2 集合与数组的相互转换 集合转数组toArray()。数组转集合调用Arrays的静态方法asList(Object … objs)。 向Collection中添加元素时要求元素所属的类一定要重写equals()方法。因为Collection中的相关方法在使用时要调用元素所在类的equals()方法。 1.3 迭代器接口Iterator及方法 在程序开发中经常需要遍历集合中的所有元素。针对这种需求JDK 专门提供了一个接口 java.util.Iterator。Iterator 接口也是 Java 集合中的一员但它与Collection、Map 接口有所不同。 Collection 接口与 Map 接口主要用于存储元素。Iterator被称为迭代器接口本身并不提供存储对象的能力主要用于遍历 Collection 中的元素。 Collection 接口继承了 java.lang.Iterable 接口该接口有一个 iterator()方法那么所有实现了 Collection 接口的集合类都有一个 iterator()方法用以返回一个实现了 Iterator接口的对象。 public Iterator iterator(): 获取集合对应的迭代器用来遍历集合中的元素的。集合对象每次调用 iterator()方法都得到一个全新的迭代器对象默认游标都在集合的第一个元素之前。 1.3.1 常用方法 public E next():返回迭代的下一个元素。作用1是将指针下移作用2是将下移以后集合位置上的元素返回。public boolean hasNext():如果仍有元素可以迭代则返回 true。 注意在调用 it.next()方法之前必须要调用 it.hasNext()进行检测。若不调用且下一条记录无效直接调用 it.next()会抛出 NoSuchElementException 异常。Iterator iterator coll.iterator(); while(iterator.hasNext()){System.out.println(iterator.next());}1.3.2 foreach循环 foreach 循环也称增强 for 循环是 JDK5.0 中定义的一个高级 for 循环专门用来遍历数组和集合的。 foreach 循环的语法格式 for(要遍历的集合或数组元素的类型 临时变量 : 要遍历的集合或数组变量){//操作临时变量的输出操作 }Testpublic void test1(){Collection coll new ArrayList();coll.add(AA);coll.add(BB);coll.add(128);coll.add(new String(张三));for (Object obj:coll) {System.out.println(obj);}}说明 针对于集合来讲增强for循环的底层仍然使用的是迭代器。增强for循环的执行过程中是将集合或数组中的元素依次赋值给临时变量。注意循环体中对临时变量的修改可能不会导致原有集合或数组中元素的修改。 1.4 List接口及方法 List接口用于存储有序的、可以重复的数据。可以使用List替代数组。 1.4.1 常用方法 add(Object obj)添加元素对象到当前集合中。addAll(Collection other)添加 other 集合中的所有元素对象到当前集合中即 this this ∪ other。int size()获取当前集合中实际存储的元素个数。boolean isEmpty()判断当前集合是否为空集合。boolean contains(Object obj)判断当前集合中是否存在一个与 obj 对象 equals 返回 true 的元素。boolean containsAll(Collection coll)判断 coll 集合中的元素是否在当前集合中都存在。即 coll 集合是否是当前集合的“子集”。boolean equals(Object obj)判断当前集合与 obj 是否相等。void clear()清空集合元素。boolean remove(Object obj) 从当前集合中删除第一个找到的与 obj 对象 equals 返回 true 的元素。boolean removeAll(Collection coll)从当前集合中删除所有与 coll 集合中相同的元素。即 this this - this ∩ coll。boolean retainAll(Collection coll)从当前集合中删除两个集合中不同的元素使得当前集合仅保留与 coll 集合中的元素相同的元素即当前集合中仅保留两个集合的交集即 this this ∩ coll。Object[] toArray()返回包含当前集合中所有元素的数组。hashCode()获取集合对象的哈希值。iterator()返回迭代器对象用于集合遍历。void add(int index, Object ele):在 index 位置插入 ele 元素。boolean addAll(int index, Collection eles):从 index 位置开始将 eles 中的所有元素添加进来。Object get(int index):获取指定 index 位置的元素。List subList(int fromIndex, int toIndex):返回从 fromIndex 到 toIndex 位置的子集合。int indexOf(Object obj):返回 obj 在集合中首次出现的位置。int lastIndexOf(Object obj):返回 obj 在当前集合中末次出现的位置。Object remove(int index):移除指定 index 位置的元素并返回此元素。Object set(int index, Object ele):设置指定 index 位置的元素为ele。 1.4.2 List 接口的实现类 ArrayListList的主要实现类线程不安全但效率高底层使用Object[]数组存储。VectorList的古老实现类线程安全但效率低底层使用Object[]数组存储。LinkedList底层使用双向链表的方式进行存储。 package p156;import java.util.ArrayList; import java.util.Scanner;public class StudentTest {public static void main(String[] args) {Scanner sc new Scanner(System.in);ArrayList list new ArrayList();System.out.println(请输入学生信息:);while (true){System.out.println(1:继续输入,0:结束录入);int selection sc.nextInt();if (selection 0){break;}System.out.print(请输入学生姓名:);String name sc.next();System.out.print(请输入学生年龄:);int age sc.nextInt();Student s new Student(name, age);list.add(s);}for (Object arr:list) {System.out.println(arr.toString());}sc.close();} }package p156;import java.util.ArrayList; import java.util.Collection;public class ListTest {public static void main(String[] args) {ArrayListObject list new ArrayList();for (int i 0; i 30; i) {list.add((char) (Math.random() * (122 - 97 1) 97) );}int aCount listTest(list, a);int bCount listTest(list, b);int cCount listTest(list, c);int xCount listTest(list, x);System.out.println(aCount);System.out.println(bCount);System.out.println(cCount);System.out.println(xCount);}public static int listTest(Collection list, String s){int count 0;for (Object obj :list) {if (s.equals(obj)){count;}}return count;} }1.5 Set接口及方法 1.5.1 介绍 Set 接口是 Collection 的子接口Set 接口相较于 Collection 接口没有提供额外的方法。Set 集合不允许包含相同的元素如果试把两个相同的元素加入同一个 Set 集合中则添加操作失败。Set 集合支持的遍历方式和 Collection 集合一样foreach 和 Iterator。Set 的常用实现类有HashSet、TreeSet、LinkedHashSet。 1.5.2 HashSet HashSet 是 Set 接口的主要实现类大多数时候使用 Set 集合时都使用这个实现类。HashSet 按 Hash 算法来存储集合中的元素因此具有很好的存储、查找、删除性能。HashSet 具有以下特点 不能保证元素的排列顺序。HashSet 不是线程安全的。集合元素可以是 null。 HashSet 集合判断两个元素相等的标准两个对象通过 hashCode() 方法得到的哈希值相等并且两个对象的 equals()方法返回值为 true。对于存放在 Set 容器中的对象对应的类一定要重写 hashCode()和 equals(Object obj)方法以实现对象相等规则。即“相等的对象必须具有相等的散列码”。HashSet 集合中元素的无序性不等同于随机性。这里的无序性与元素的添加位置有关。具体来说我们在添加每一个元素到数组中时具体的存储位置是由元素的hashCode()调用后返回的 hash 值决定的。导致在数组中每个元素不是依次紧密存放的表现出一定的无序性。 1.5.3 LinkedHashSet LinkedHashSet 是 HashSet 的子类不允许集合元素重复。LinkedHashSet 根据元素的 hashCode 值来决定元素的存储位置但它同时使用双向链表维护元素的次序这使得元素看起来是以添加顺序保存的。LinkedHashSet 插入性能略低于 HashSet但在迭代访问 Set 里的全部元素时有很好的性能。 1.5.4 TreeSet TreeSet 是 SortedSet 接口的实现类TreeSet 可以按照添加的元素的指定的属性的大小顺序进行遍历。TreeSet 底层使用红黑树结构存储数据。TreeSet 特点不允许重复、实现排序自然排序或定制排序。自然排序默认情况下TreeSet 采用自然排序TreeSet 会调用集合元素的 compareTo(Object obj) 方法来比较元素之间的大小关系然后将集合元素按升序(默认情况)排列。 如果试图把一个对象添加到 TreeSet 时则该对象的类必须实现Comparable 接口。实现 Comparable 的类必须实现compareTo(Object obj) 方法两个对象即通过 compareTo(Object obj) 方法的返回值来比较大小。 定制排序如果元素所属的类没有实现 Comparable 接口或不希望按照升序(默认情况)的方式排列元素或希望按照其它属性大小进行排序则考虑使用定制排序。定制排序通过 Comparator 接口来实现。需要重写compare(T o1,T o2)方法。 利用 int compare(T o1,T o2)方法比较 o1 和 o2 的大小如果方法返回正整数则表示 o1 大于 o2如果返回 0表示相等返回负整数表示 o1 小于 o2。要实现定制排序需要将实现 Comparator 接口的实例作为形参传递给 TreeSet 的构造器。 因为只有相同类的两个实例才会比较大小所以向 TreeSet 中添加的应该是同一个类的对象。对于 TreeSet 集合而言它判断两个对象是否相等的唯一标准是两个对象通过compareTo(Object obj) 或 compare(Object o1,Object o2)方法比较返回值。返回值为 0则认为两个对象相等。 /*** 将0-20之间的随机数放入集合中要求不能出现重复元素*/ public class Exer02 {public static void main(String[] args) {HashSet set new HashSet();while (set.size() 10) {int random (int) (Math.random() * (10 - 1 1) 1);set.add(random);}Iterator iterator set.iterator();while (iterator.hasNext()){System.out.println(iterator.next());}} }/*** 去除列表中重复的元素仅保留一个即可*/public class Exer01 {public static void main(String[] args) {ArrayList list new ArrayList();list.add(34);list.add(34);list.add(34);list.add(24);list.add(24);list.add(44);list.add(44);list.add(44);List newList duplicateList(list);System.out.println(newList);}public static List duplicateList(List list){HashSet set new HashSet(list);ArrayList list1 new ArrayList(set);return list1;} }1.6 Map接口及方法 1.6.1 Map及其实现类对比 HashMap主要实现类线程不安全但效率高可以添加null的key和value值底层使用数组单向链表红黑树结构存储JDK8。Hashtable古老实现类线程安全但效率低不可以添加null的key和value值底层使用数组单向链表结构存储JDK8。LinkedHashMap是HashMap的子类在HashMap使用的数据结构的基础上增加了一对双向链表用于记录添加的元素的先后顺序进而在遍历时可以按照添加的顺序显示。在开发中对于频繁的遍历操作建议使用此类。TreeMap底层使用红黑树存储可以按照添加的key-value中的key元素的指定的属性大小顺序进行遍历。需要考虑自然排序和定制排序。Properties是Hashtable的子类其key和value都是String类型常用来处理属性文件。 1.6.2 HashMap中元素的特点 HashMap中的所有的key彼此之间是不可重复的、无序的。所有的key构成一个Set集合。key所在的类要重写hashCode()和equals()方法。HashMap中的所有的value彼此之间是可重复的、无序的。所有的value就构成了一个Collection集合。value所在的类要重写equals()方法。HashMap中的一个key-value构成一个entry。HashMap中所有的entry彼此之间是不可重复的、无序的。所有的entry构成了一个Set集合。 1.6.3 Map中的常用方法 添加、修改操作 Object put(Object key,Object value)将指定 key-value 添加到(或修改)当前map 对象中。void putAll(Map m):将 m 中的所有 key-value 对存放到当前 map 中。 删除操作 Object remove(Object key)移除指定 key 的 key-value 对并返回 value。void clear()清空当前 map 中的所有数据。 元素查询的操作 Object get(Object key)获取指定 key 对应的 value。boolean containsKey(Object key)是否包含指定的 key。boolean containsValue(Object value)是否包含指定的 value。int size()返回 map 中 key-value 对的个数。boolean isEmpty()判断当前 map 是否为空。boolean equals(Object obj)判断当前 map 和参数对象 obj 是否相等。 元视图操作的方法 Set keySet()返回所有 key 构成的 Set 集合。Collection values()返回所有 value 构成的 Collection 集合。Set entrySet()返回所有 key-value 对构成的 Set 集合。 1.6.4 TreeMap的使用 底层使用红黑树存储。可以按照添加的key-value中的key元素的指定属性大小顺序进行遍历。考虑使用自然排序和定制排序。要求向TreeMap中添加的的key必须是同一个类型的对象。 1.6.5 Hashtable与Properties的使用 Properties是Hashtable的子类其key和value都是String类型常用来处理属性文件。 package p161;import java.util.*;public class SingerTest {public static void main(String[] args) {HashMap singers new HashMap();String singer1 周杰伦;ArrayList songs1 new ArrayList();songs1.add(夜曲);songs1.add(晴天);songs1.add(七里香);songs1.add(青花瓷);singers.put(singer1,songs1);Set entrySet singers.entrySet();Iterator iterator entrySet.iterator();while (iterator.hasNext()){Map.Entry entry (Map.Entry) iterator.next();System.out.println(歌手:entry.getKey());System.out.println(歌曲有:entry.getValue());}} }1.7 Collections工具类 Collections是一个操作Set、List和Map等集合的工具类。 1.7.1 常用方法 Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作还提供了对集合对象设置不可变、对集合对象实现同步控制等方法均为static 方法。 排序操作 reverse(List)反转 List 中元素的顺序。shuffle(List)对 List 集合元素进行随机排序。sort(List)根据元素的自然顺序对指定 List 集合元素按升序排序。sort(ListComparator)根据指定的 Comparator 产生的顺序对 List 集合元素进行排序。swap(Listint int)将指定 list 集合中的 i 处元素和 j 处元素进行交换。 查找 Object max(Collection)根据元素的自然顺序返回给定集合中的最大元素。Object max(CollectionComparator)根据 Comparator 指定的顺序返回给定集合中的最大元素。Object min(Collection)根据元素的自然顺序返回给定集合中的最小元素。Object min(CollectionComparator)根据 Comparator 指定的顺序返回给定集合中的最小元素。int binarySearch(List list,T key)在 List 集合中查找某个元素的下标但是 List 的元素必须是 T 或 T 的子类对象而且必须是可比较大小的即支持自然排序的。而且集合也事先必须是有序的否则结果不确定。int binarySearch(List list,T key,Comparator c)在 List 集合中查找某个元素的下标但是List 的元素必须是 T 或 T 的子类对象而且集合也事先必须是按照 c 比较器规则进行排序过的否则结果不确定。int frequency(Collection cObject o)返回指定集合中指定元素的出现次数。 复制、替换 void copy(List dest,List src)将 src 中的内容复制到 dest 中。boolean replaceAll(List listObject oldValObject newVal)使用新值替换 List 对象的所有旧值。提供了多个unmodifiableXxx()方法该方法返回指定 Xxx 的不可修改的视图。 添加 boolean addAll(Collection c,T… elements)将所有指定元素添加到指定 collection 中。 同步 Collections 类中提供了多个 synchronizedXxx() 方法该方法可使将指定集合包装成线程同步的集合从而可以解决多线程并发访问集合时的线程安全问题。
http://www.pierceye.com/news/167362/

相关文章:

  • 开发一个网站做公司内部用一个网站能用asp c
  • 设计师服务平台鱼巴士有哪些网站阜宁网站设计
  • 企业网站开发所需要的模块郴州网警
  • 案例网站网页设计实训报告结束语
  • 重庆网上房地产网站龙岩属于哪里
  • 高水平的番禺网站建设在天猫开店需要什么条件与费用
  • 给网站加个地图的代码wordpress 视频预览
  • 邯郸去哪做网站改版短网址生成器在线
  • 广州手机模板建站互联网公司薪资待遇
  • 网站建设的作用有哪些方面wordpress 首页描述
  • 汕头龙湖网站建设做网站用什么团建
  • 网站建站的技术解决方案高唐网站开发
  • dz网站收款即时到账怎么做的礼县建设局网站
  • 专业做轮胎的网站女同wordpress
  • 宁波公司网站首页优化商城网站前期seo应该怎么做
  • ui设计网站用red5做直播网站
  • 网站开发问题论文王老吉网站建设水平优点
  • 平安银行官方网站制作网站步骤
  • 做个网站好还是做淘宝好宁波网站制作好公司
  • 开发网站需要怎么做嘉兴快速建站合作
  • 阿里云建站后台建站网站降权怎么恢复
  • 天津河西做网站公司怎么设置网站的关键字
  • 做网站会提供源代码吗朝阳网站制作设计
  • 企业做网站找谁有什么建筑网站
  • 自己做的网站显示iis7游戏网站怎么建设
  • 淘宝联盟怎么做自已的网站什么叫利用网站做蜘蛛池
  • 做网站要多少带宽镇江网站建设联系思创
  • 唐朝网站的地址软件设计师报考条件
  • seo网站建设刘贺稳营销专家a西宁市网站建设多少钱
  • 上海哪家公司做网站最好网站建设服务合同 付款方式