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

上海网站建设工作室网站搭建上门多少钱

上海网站建设工作室,网站搭建上门多少钱,微信商城开发实惠华网天下,高邮网站建设声明#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总#xff0c;主要是每天的知识点题解#xff0c;算是让自己巩固复习#xff0c;也希望能给初学的朋友们一点帮助#xff0c;大佬们不喜勿喷(抱拳了老铁#xff01;) 往期回顾 Java学习day13#xff1a;泛型该专栏本人重新过一遍java知识点时候的笔记汇总主要是每天的知识点题解算是让自己巩固复习也希望能给初学的朋友们一点帮助大佬们不喜勿喷(抱拳了老铁) 往期回顾 Java学习day13泛型一篇文章搞懂-CSDN博客 Java学习day12static关键字字符串声明字符串常量池-CSDN博客 Java学习day11异常-CSDN博客 ...... Java学习day14权限修饰符集合 一、权限修饰符 其实咱们早就已经见过权限修饰符了 权限修饰符 四个 public  private  protected   default(不写是叫default) 默认的 1.1private修饰符 private 修饰私有的成员变量和成员方法。 1.在本类中可以使用私有化的成员属性和成员方法2.同一个包下面其他类不能使用私有化的成员属性和成员方法3.其他的包的下面的其他类不能使用私有化的成员属性和成员方法总结private修饰的成员变量和成员方法只能在本类中使用 那如果想要去调用一个类的私有化方法可以先在类的公有化方法里调用私有化方法再在主类里调用公有化方法 1.2protected  protected修饰方法和属性 1.同一个类中可以使用的2.同一个包下面其他类可以使用3.不同包下面如果是子类可以使用但是其他类不能使用总结其他包下面其他类不能使用但是继承的子类可以使用的 1.3public  public修饰方法和属性是公开的谁都可以。 1.4不写默认的default default修饰方法和属性 1.在本类中默认的属性和方法是可以使用的2.同一个包下面的其他类可以使用3.其他包下面的其他类不能使用的总结默认的属性和方法只能在同一个包使用 1.5总结 开发中最常用的是 private  public 权限大小是逐级递减的 权限修饰符的名称当前类同一个包下面其他类不同包下面子类不同包下面的其他类public 可以可以可以可以protected可以可以可以不可以不写默认default可以可以不可以不可以private可以不可以不可以不可以 二、集合(重点) 2.1集合的架构 看官方的API interface   CollectionE  是java中集合的总接口 Collection下面有两个重要的子接口 List    和 Set List 接口  Collection下面的子接口存储数据特征 有序的可重复的  有两个比较重要的实现类:ArrayList    LinkedList Set  接口:  Collection下面的子接口存储数据特征:  无序的不可重复的  有两个比较重要的实现类: HashSet   TreeSet 2.2collection接口  学习Collection这个接口其实就是在学习这个接口下面的方法 这些方法怎么调用呢我们都知道接口不能直接实例化咋办 借助于他的子类ArrayList即可用多态 2.2.1主要方法 1增: boolean add(E e);  boolean addAll(Collection? extends E c);  2删:  boolean remove(Object obj);  boolean removeAll(Collection? extends E c);     [a,b,c]  [b, c, d]     void clear();  3查:  int size();   Object[] toArray();   boolean contains(Object obj);  boolean containsAll(Collection? extends E c);  boolean isEmpty();  不知道大家看的懂这些方法背后的含义不该怎么使用我建议大家去看看官方API文档这是学习一个新方法很好的途径。 希望大家都是看了再来看我这里的。 增:  boolean add(E e);添加一个数据到集合中  boolean addAll(Collection? extends E c); 将一个集合数据添加到另外一个集合中  Collection? extends E:元素 是E本类或者继承的E才能添加到另外一个集合中 删:  boolean remove(Object obj);删除指定的元素  boolean removeAll(Collection? extends E c);  删除的是交集      [a,b,c]  [b, c, d]  void clear();清空的  查:  int size();  查看集合中元素的个数   Object[] toArray(); 将集合转为Object类型数组  boolean contains(Object obj); 集合中是否包含这个元素 如果包含返回true   boolean containsAll(Collection? extends E c);一个集合是否另外一个集合子集合  boolean isEmpty();   判断集合是否为空  2.2.2示例  import java.util.ArrayList; import java.util.Collection;public class Demo {public static void main(String[] args) {CollectionString list new ArrayListString();//容器已经创建好了list.add(山山);list.add(福豪);list.add(忠达);System.out.println(list);CollectionString list1 new ArrayListString();list1.add(昊冉);list1.add(泽文);list1.add(梓宇);list.addAll(list1);CollectionInteger list2 new ArrayListInteger();list2.add(2);list2.add(89);//list.addAll(list2);直接报错System.out.println(list);////[山山, 福豪, 忠达, 昊冉, 泽文, 梓宇]//删除 山山System.out.println(list.remove(山山));//trueSystem.out.println(list);//山山是否还在list集合中//[福豪, 忠达, 昊冉, 泽文, 梓宇]System.out.println(list.remove(老邢));//fasle 删除一个不存在的数据的时候就是falseCollectionString list3 new ArrayListString();list3.add(昊冉);list3.add(泽文);list3.add(山山);//list3[昊冉 “泽文”, 山山]//list[福豪, 忠达, 昊冉, 泽文, 梓宇]list.removeAll(list3);System.out.println(list);//[福豪, 忠达, 梓宇] // list.clear(); // System.out.println(list);//[]//SIZE()System.out.println(list.size());//3//toArray();集合转数组Object[] objects list.toArray();System.out.println(objects);//地址for (int i 0; i objects.length; i) {System.out.println(objects[i]);}System.out.println(list.contains(忠达));//trueSystem.out.println(list.contains(山山));//falseSystem.out.println(list.isEmpty());//falseObject obj 嘻嘻;System.out.println(obj);} }2.3遍历集合中的数据  2.3.1.使用for循环 这种是最基础的将集合转为数组然后再for循环遍历 import java.util.ArrayList; import java.util.Collection;public class Demo2 {public static void main(String[] args) {CollectionInteger list new ArrayList();list.add(250);list.add(360);list.add(470);list.add(404);list.add(500);System.out.println(list);//可以将集合转为数组然后再for循环遍历//不用Object[] objects list.toArray();for (int i 0; i objects.length; i) {System.out.println(objects[i]);}} } 2.3.2.增强for循环  2.3.2.1语法格式 for (集合中元素的数据类型 临时变量 集合或者数组) {  sout临时变量 } import java.util.ArrayList; import java.util.Collection;public class Demo3 {public static void main(String[] args) {CollectionString list new ArrayList();list.add(毛泽东);list.add(邓小平);list.add(江泽民);list.add(胡锦涛);System.out.println(list);//String s : list//将list集合 进行迭代每次取一个值然后赋值给 s//将list集合中的数据挨个的赋值给sfor (String s : list) {System.out.println(s);}} } 2.3.3.迭代器 也是对集合中数据进行遍历的分三步走 1.通过集合对象创建迭代器对象 cursor  光标 指针 IteratorString iterator list.iterator(); 2.第一个方法  hasNext(); 判断一个集合中是否有下一个元素 有的话返回true否则false System.out.println(iterator.hasNext());//true 3.第二个方法next() 一个方法干了两件事情首先会返回当前光标下面的元素其次并把光标挪到下一元素的位置 System.out.println(iterator.next()); 通过迭代器这一特性我们用一个while循环就可以实现集合数据的遍历输出大家看代码。 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;public class Demo4 {public static void main(String[] args) {CollectionString list new ArrayList();list.add(毛泽东);list.add(邓小平);list.add(江泽民);list.add(胡锦涛);//接下来咱们是哟个迭代器进行数据的遍历//1.通过集合对象创建迭代器对象 cursor 光标 指针IteratorString iterator list.iterator();//2第一个方法 hasNext(); 判断一个集合中是否有下一个元素// System.out.println(iterator.hasNext());//true//3.next() 一个方法干了两件事情//会返回当前光标下面的元素。并把光标挪到下一元素的位置 // System.out.println(iterator.next()); // System.out.println(iterator.hasNext());//true // System.out.println(iterator.next()); // System.out.println(iterator.hasNext());//true // System.out.println(iterator.next()); // System.out.println(iterator.hasNext());//true // System.out.println(iterator.next()); // System.out.println(iterator.hasNext());//false // System.out.println(iterator.next());while (iterator.hasNext()) {System.out.println(iterator.next());}} } 2.4在集合中存的是自定义的对象【重点】  这里要特别注意一个问题当集合中存的是自定义对象的时候打印对象时会自动调用toString方法而Java封装的toString方法里打印的是内存地址为了转换为方便我们看懂的就需要重写toString方法。 toString()这个方法说白了就是返回类名对象16进制的内存地址 是打印对象时自动调用的所以说为了结果让人容易阅读建议所以偶子类覆盖此方法后面还会仔细讲解  public class Person {private String name;private int age;//有参构造方法对属性进行赋值public Person(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}//在一个类中重写toString方法//将内存地址转为程序员能看懂的字符串// Override // public String toString() { // return Person{ // name name \ // , age age // }; // } }public class Demo5 {public static void main(String[] args) {Person person new Person(老邢, 78);System.out.println(person);//// 之前打印的person对象是内存地址现在在类中重写了toString方法//以后输出一个对象的话就会打印出来一个字符串//在集合中添加person对象CollectionPerson list new ArrayList();list.add(person);list.add(new Person(骚磊, 45));list.add(new Person(阳仔, 89));list.add(new Person(源哥, 35));System.out.println(list);Object[] objects list.toArray();Person person1 (Person)objects[1];System.out.println(person1.getName());} } 大家可以跑一跑这段代码试试重写toString方法和不重写情况下的区别。 当然这里重写的方法不知道大家看懂了吗 Override     public String toString() {         return Person{                 name name \                 , age age                 };     } } 看不懂就多看几遍再用idea跑一下看看输出结果不是什么难题。 2.5List接口  List是Collection的子接口而且实际开发中用List而不用Collection。因为List在Collection基础之上添加了很多的方法。 Collection下面的方法List肯定有的因为是继承关系。上面讲了Collection下面的方法在List中也可以用。接下来咱们讲List独有的方法。 2.5.1List独有的方法 增:   void add(int index, E e);在指定的位置上插入一个元素   boolean addAll(int index, Collection? extends E e);将一个集合插入到另外一个集合的指定的位置 删   Collection删除的时候通过元素来删除的。 remove(Object obj)   E remove(int index);通过索引来删除指定的元素。返回的是被删除的元素  改   E set(int index, E e); 通过指定的索引修改数据元素返回值是被修改的原数据  查:   E get(int index);  通过索引下标去获取指定元素   int indexOf(Object obj);通过元素获取指定的下标的   int lastIndexOf(object obj);通过元素获取最后一次出现的元素的下标   ListE subList(int formIndex, int toIndex);截取一部分出来  2.5.1.1示例  大家仔细看示例通过示例去熟悉方法。 import java.util.ArrayList; import java.util.List;public class Demo1 {public static void main(String[] args) {ListString list new ArrayList();list.add(张三);list.add(李四);list.add(王五);list.add(张三);//有序的 可重复的System.out.println(list);//[张三, 李四, 王五, 张三]list.add(2, 狗蛋);System.out.println(list);ListString list1 new ArrayList();list1.add(麻子);list1.add(赵四);list1.add(贝贝);list.addAll(1, list1);System.out.println(list);System.out.println(list.remove(0));//在删除System.out.println(list);//目的是删除以后的集合的数据展示一下//[麻子, 赵四, 贝贝, 李四, 狗蛋, 王五, 张三]System.out.println(list.set(2, 彩云));//贝贝System.out.println(list);//修改之后的集合System.out.println(list.get(0));System.out.println(list.get(1));System.out.println(list.get(2));System.out.println(list.get(3));//System.out.println(list.get(89));System.out.println(list.indexOf(麻子));//0list.add(2, 张三);System.out.println(list.lastIndexOf(张三));//7System.out.println(list);ListString strings list.subList(3, 5);System.out.println(strings);} } 2.5.2遍历List集合中的数据 这里同样的三个方法for循环、增强for循环、还有迭代器跟遍历集合中的数据是一样的就不再具体讲解太多。 2.5.2.1.for循环 import java.util.ArrayList; import java.util.List;public class Demo2 {public static void main(String[] args) {ListString list new ArrayList();list.add(张三);list.add(李四);list.add(王五);list.add(张三);System.out.println(list);for (int i 0; i list.size(); i) {//通过索引获取元素System.out.println(list.get(i));}} } 2.5.2.2.增强for循环 import java.util.ArrayList; import java.util.List;public class Demo2 {public static void main(String[] args) {ListString list new ArrayList();list.add(张三);list.add(李四);list.add(王五);list.add(张三);System.out.println(list);//for循环 // for (int i 0; i list.size(); i) { // //通过索引获取元素 // System.out.println(list.get(i)); // }//增强for循环 // for (String s : list) { // System.out.println(s); // }//迭代器} } 2.5.2.3.迭代器  根据光标位置的不同来判断是用hasNext()还是hasPrevious() import java.util.ArrayList; import java.util.List; import java.util.ListIterator;public class Demo3 {public static void main(String[] args) {ListString list new ArrayList();list.add(张三);list.add(李四);list.add(王五);list.add(张三);System.out.println(list);ListIteratorString sli list.listIterator();while (sli.hasNext()) {System.out.println(sli.next());}//此时光标已经在最下面了while (sli.hasPrevious()) {System.out.println(sli.previous());}} } 或者改进一下 import java.util.ArrayList; import java.util.List; import java.util.ListIterator;public class Demo4 {public static void main(String[] args) {ListString list new ArrayList();list.add(张三);list.add(李四);list.add(王五);list.add(张三);System.out.println(list);//可以将指针光标放到指定的额位置上然后移动光标对数据进行遍历ListIteratorString sli list.listIterator(4);while (sli.hasPrevious()) {System.out.println(sli.previous());}} } 2.6ArrayList 2.6.1特征 ArrayList底层是数组可以扩容的。默认的容量是10.超过10以后会自动扩容扩容1.5倍 他查询快增删慢。而我们实际开发就用ArrayList   因为开发的时候主要查询多 2.6.2示例 import java.util.ArrayList;public class Demo1 {public static void main(String[] args) {//一般开发的时候写成 父类的引用指向子类的对象//因为List接口下面的方法已经够用了//ArrayList独有的方法很少几乎不用 所以ListArrayListString list new ArrayList();list.add(狗蛋);list.add(1, 老邢);list.add(老万);for (String s : list) {System.out.println(s);}} } 2.7LinkedList 2.7.1特征 查询慢增删快LinkedList也是List的实现类双向链表。 2.7.2示例 import java.util.LinkedList;public class Demo1 {public static void main(String[] args) {LinkedListString list new LinkedList();list.add(狗蛋);list.add(嘻嘻);list.addLast(哈啊哈);list.addFirst(呵呵);System.out.println(list);for (String s : list) {System.out.println(s);}} } 2.8ArrayList和LinkedList和Vector的区别 ArrayList和Vector 底层是数组但是Vector是线程安全的所以效率底开发中不用Vector 2.8.1ArrayList和linkedList区别: ArrayListlinkedList底层是数组底层是双向链表查询快 底层是索引有序的通过内存有序地址直接找到 时间复杂度  o(1)查询慢底层是二分法查找的算法 时间复杂度是log以2为底 n的对数增删慢 增加数据和删除数据有可能扩容。每次扩1.5倍。扩容的话浪费内存浪费时间on增删快直接找前置结点 Node prev后继结点 Node next。时间复杂度是 o(1) 总的来说ArrayList适合需要频繁访问和修改元素的场景LinkedList适合需要频繁插入和删除元素的场景而Vector适合需要线程安全的场景。当然实际开发的时候大部分用ArrayList 以上就是今天的所有知识点了。集合这个知识点不难丹斯要记的背的东西很多大家得多花点时间静下心慢慢看慢慢理解不是什么大问题。最后三个类的比较我写的很简略大家可以下来自行再拓展。 加油吧预祝大家变得更强
http://www.huolong8.cn/news/99721/

相关文章:

  • 建设网站有什么要素构成唯美谷网站建设
  • 网站建设导入视频wordpress foxlogin
  • 十堰网站网站建设电子商务实验网站建设实训过程
  • windows7建设网站怎样在淘宝网做网站
  • 如何做企业网站开发wordpress 首页文章数
  • 网站建设8万属于资产吗长沙app制作
  • 北京人才招聘网站制作商城网站开发
  • 网站系统的建设与管理现在自己做网站卖东西行么
  • thinphp 做外贸网站wordpress 短网址
  • 网站建设域名所有权网站前后端的关系
  • 免费网站建站模块wordpress get style ui
  • 网站广告策划银川市住房建设局网站
  • 网站首页权重适合前端做项目的网站
  • 定制网站和模板网站及仿站的区别深圳外贸网站开发公司
  • 石家庄市市政建设工程公司网站南京中建乡旅建设投资有限公司网站
  • 徐州发布网站wordpress注册不发送邮件
  • 开锁公司网站建设百度快速排名优化技术
  • 淮南网站制作网页游戏源码交易平台
  • 网站怎么做万词lovefort表白网站制作
  • 网站空间服务器费用台州网站制作
  • 网站关键词突然没有排名了泰安建设局网站
  • git 网站开发应用网站修改 iis6应用程序池
  • 在线简历免费制作网站wordpress用户组插件
  • 网站建设记在哪个科目建设用地规划证查询网站
  • 天津怎样做网站推广兰州做网站哪家好
  • 昆山住房与城乡建设局网站做网站l价格
  • 上海网站建站建设ss免费服务器
  • 千阳县住房和城乡建设局网站杭州专业网站建设公司哪家好
  • 网站用不用备案手机如何开发软件程序
  • 宁波网站建设哪家快湖北响应式网页建设企业