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

如何做产品网站推广免费个人logo设计网站

如何做产品网站推广,免费个人logo设计网站,做网站现在还行吗,wordpress文章图集合是一种容器,类似于数组,但集合的大小可变,开发中也非常常用。Collection代表单列集合,每个元素(数据)只包含1个值。Collection集合分为两类,List集合与set集合。 特点 List系列集合&#…

集合是一种容器,类似于数组,但集合的大小可变,开发中也非常常用。Collection代表单列集合,每个元素(数据)只包含1个值。Collection集合分为两类,List集合与set集合。

特点

List系列集合:添加的元素有序,可重复,有指引。

即ArrayList、LinkedList:有序、可重复、有索引。

Set系列集合:添加的元素是无序、不重复、无索引。

HashSet:无序、不重复、无索引;

LinkedHashSet 有序、不重复、无索引。

TreeSet:按大小默认升序排序、不重复、无索引。

(Collection,List与Set是接口,ArrayList等集合是它们的实现类)

示例:

package Collection;import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;public class CollectionDemo1 {public static void main(String[] args) {//目标:搞清楚Collection集合的整体特点//1、list家族的集合:有序,可重复,有索引List<String> list = new ArrayList<>();list.add("java");list.add("java");list.add("c++");list.add("python");System.out.println(list);for(int i = 0; i < list.size(); i++)System.out.println(list.get(i));//2、set家族的集合:无序,不可重复,无索引Set<String> set = new HashSet<>();set.add("java");set.add("java");set.add("c++");set.add("python");System.out.println(set);//无索引,没有get方法}
}

Collection集合的通用方法

package Collection;import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;public class CollectionDemo2 {public static void main(String[] args) {//目标:搞清楚Collection集合的通用功能Collection<String> list = new ArrayList<>();//添加集合元素list.add("java");list.add("c++");list.add("python");System.out.println(list);//判断集合元素个数System.out.println(list.size());//删除集合元素list.remove("c++");System.out.println(list);//判断集合是否为空System.out.println(list.isEmpty());//清空集合list.clear();System.out.println(list.isEmpty());System.out.println(list);list.add("java");list.add("c++");//判断集合中是否包含某个元素System.out.println(list.contains("java"));System.out.println(list.contains("c++"));System.out.println(list.contains("python"));//集合转数组
//        Object[] arr = list.toArray();
//        for (int i = 0; i < arr.length; i++) {
//            System.out.println(arr[i]);
//        }String[] arr = list.toArray(String[]::new);System.out.println(Arrays.toString(arr));}
}

集合的几种遍历方式

通常,我们有三种方法可以遍历集合

一、迭代器遍历

package Collection;import java.util.ArrayList;
import java.util.Iterator;public class CollectionDemo3 {public static void main(String[] args) {//目标:理解集合的遍历方式//方式一:迭代器遍历ArrayList<String> names = new ArrayList<>();names.add("林青霞");names.add("张曼玉");names.add("王祖蓝");names.add("柳岩");names.add("张无忌");System.out.println(names);//1、得到一个迭代器对象Iterator<String> it = names.iterator();//it的位置是集合的第一个位置//System.out.println(it.next());      //取出当前位置数据,并且移动到下一个位置//while循环遍历while(it.hasNext()){    //判断当前位置有没有数据String name = it.next();System.out.println(name);}}
}

如上述代码,通过java库中Iterator<数据类型>变量名 来获取一个迭代器对象,用变量名.hasNext()来判断当前位置是否有值,没有值则不进入循环。再通过变量名.next获得当前位置数据,并将指针移向下一位数字来进行数据的输出。

二、增强for循环遍历

package Collection;import java.util.ArrayList;public class CollectionDemo4 {public static void main(String[] args) {//方式二:增强for循环遍历ArrayList<String> names = new ArrayList<>();names.add("林青霞");names.add("张曼玉");names.add("王");names.add("柳岩");names.add("张无忌");System.out.println(names);//可以遍历集合,也能遍历数组for(String name : names){System.out.println(name);}}
}

这是一个通用的方法,可以用于集合也可以用于数组,用name接收集合中的值并一个个将其打出。

三:Lambda方法:forEach遍历

package Collection;import java.util.ArrayList;
import java.util.function.Consumer;public class CollectionDemo5 {public static void main(String[] args) {//方式三:LambdaArrayList<String> names = new ArrayList<>();names.add("林青霞");names.add("张曼玉");names.add("王");names.add("柳岩");names.add("张无忌");//forEach(Consumer<? super T> action)//这是一个接口,所以需要使用Lambda表达式
//        names.forEach(new Consumer<String>() {
//            @Override
//            public void accept(String s) {
//                System.out.println(s);
//            }
//        });names.forEach(s -> System.out.println(s));}
}

通过重写集合中的accept方法进行遍历。

并发修改异常问题与解决

在遍历一个集合并对其中数据进行修改时,若是在循环中直接删掉一个数容易产生并发修改异常问题。例如,一个集合中有李明,李四,张三,王五 。当我们需要删除名字中带李的人时,遍历到李明时指针为0,李明被删除,数组上移一位,李四变为指针0,可此时指针已经移动到1的位置,李四被略过没删除,这就是并发修改异常问题。

示例

package Collection;import java.util.ArrayList;
import java.util.Iterator;public class CollectionDemo6 {public static void main(String[] args) {//目标:认识并发修改异常问题,搞清楚每种遍历的区别ArrayList<String> list = new ArrayList<>();list.add("Java入门");list.add("黑枸杞");list.add("宁夏枸杞");list.add("枸杞");list.add("特级枸杞");list.add("枸杞子");list.add("西洋参");System.out.println(list);//[Java入门, 黑枸杞, 宁夏枸杞, 枸杞, 特级枸杞, 枸杞子, 西洋参]for (int i = 0; i < list.size(); i++) {String s = list.get(i);if (s.contains("枸杞")){list.remove(s);}}System.out.println(list);   //枸杞没有删完//[Java入门, 宁夏枸杞, 特级枸杞, 西洋参]//原因是当遍历到了黑枸杞并删除时,此时索引变成了2,但因为黑枸杞被删了,宁夏枸杞的索引变成了1,所以索引为1的元素被跳过了System.out.println("========================================================");ArrayList<String> list2 = new ArrayList<>();list2.add("Java入门");list2.add("黑枸杞");list2.add("宁夏枸杞");list2.add("枸杞");list2.add("特级枸杞");list2.add("枸杞子");list2.add("西洋参");System.out.println(list2);//解决方案1:删除时索引-1
//        for (int i = 0; i < list2.size(); i++)
//            {
//                String s = list2.get(i);
//                if (s.contains("枸杞"))
//                {
//                    list2.remove(i);
//                    i--;//删除后索引要减一
//                }
//            }//方案二:倒着遍历 (支持索引)for (int i = list2.size()-1; i >=0 ; i--) {String s = list2.get(i);if (s.contains("枸杞"))list2.remove(s);}System.out.println(list2);System.out.println("========================================================");//三种遍历的区别ArrayList<String> list3 = new ArrayList<>();list3.add("Java入门");list3.add("黑枸杞");list3.add("宁夏枸杞");list3.add("枸杞");list3.add("特级枸杞");list3.add("枸杞子");list3.add("西洋参");System.out.println(list3);//一、迭代器遍历删除默认也存在并发修改异常问题Iterator<String> it = list3.iterator();while (it.hasNext()){String s = it.next();if (s.contains("枸杞"))//it.remove(s);it.remove();//用迭代器自己的方法删}System.out.println(list3);System.out.println("========================================================");ArrayList<String> list4 = new ArrayList<>();list4.add("Java入门");list4.add("黑枸杞");list4.add("宁夏枸杞");list4.add("枸杞");list4.add("特级枸杞");list4.add("枸杞子");list4.add("西洋参");System.out.println(list4);//二、三:增强for和Lambda(无法解决并发修改异常)
//        for (String s : list4) {
//            if (s.contains("枸杞"))
//                list4.remove(s);
//        }//结论:增强for和Lambda只适合做遍历,不适合遍历并修改
//        System.out.println(list4);list4.removeIf(s -> s.contains("枸杞"));System.out.println(list4);}
}

迭代器遍历内有专门解决这个问题的方法,即迭代器.remove(),删掉当前迭代器指向的值并且指针不动。用正常for循环时,可以用每删一个值指针就向前一位解决。还有一种方法就是从后往前遍历,删除后面的数据对前面的数据不造成影响,也可以正常删除。而增强for和Lambda则没有方法解决这个并发修改异常问题。因此,得出结论,增强for与Lambda适合用于遍历,而遍历同时进行修改则需要使用别的遍历方法。


文章转载自:

http://fCrrslYS.tqqfj.cn
http://UVlFq2Kz.tqqfj.cn
http://EajopqP9.tqqfj.cn
http://NcxtyNPm.tqqfj.cn
http://5i9byb6o.tqqfj.cn
http://YT9af0u0.tqqfj.cn
http://Etezyhpw.tqqfj.cn
http://aG6fL9hE.tqqfj.cn
http://awIVQlk0.tqqfj.cn
http://ZqWF7q2E.tqqfj.cn
http://pawk4L0y.tqqfj.cn
http://pIb7wYOt.tqqfj.cn
http://Fjrxv2NO.tqqfj.cn
http://ku9IXJiR.tqqfj.cn
http://hD2ddCex.tqqfj.cn
http://CJPz5bb5.tqqfj.cn
http://U8TvBhhh.tqqfj.cn
http://Hqy1vYpG.tqqfj.cn
http://AT30DJ9f.tqqfj.cn
http://8xmfiUD6.tqqfj.cn
http://jnJsblu7.tqqfj.cn
http://EwEnJGAp.tqqfj.cn
http://lEJkHKOW.tqqfj.cn
http://Vy9RadVd.tqqfj.cn
http://1JctvQN3.tqqfj.cn
http://zJeL6JqH.tqqfj.cn
http://rBY5iXlE.tqqfj.cn
http://2Op4Zvzr.tqqfj.cn
http://YZxRVpqb.tqqfj.cn
http://gEvcFYu5.tqqfj.cn
http://www.dtcms.com/wzjs/772799.html

相关文章:

  • 深圳团购网站设计公司成年人适合看的电视剧
  • 成武县住房和城乡建设厅网站跨境电商自己做网站引流
  • 网站空间如何买天津门头设计制作价格
  • 推荐30个国外优秀的设计教程网站黄页网站是什么
  • 网站地图页面网站做很久了百度没收录
  • 怎么才能百度到自己的网站企业型网站怎么做
  • 惠阳区城市建设规划局网站电子商务网站建设与维护方法分析不包括
  • PHP网站开发技术期末作品北京光辉网站建设
  • 成都网站设计公司电话网页设计实验报告单
  • 网页设计的网网页设计的网站建设装修设计视频
  • 济南伍际网站建设网页设计与制作步骤
  • 网站面包屑如何做免费注册发布信息网站
  • 网站排名 各因素网站开发建设与维护
  • 网站建设服务器维护内容高州网站开发公司
  • 极速建站 哪家好网站建设基础功能
  • 域名怎么做网站内容厦门做网页网站的公司
  • 大型网站开发软件移动互联网时代的信息安全与防护超星网课答案
  • 硬件开发一站式平台网页设计实训报告摘要
  • 织梦模板更新网站金融公司网站制作
  • 怎么申请域名建网站中国证券登记结算有限公司官网
  • 提供常州微信网站建设如何建一个网站多少钱
  • 自己做网站服务器静态网站的好处
  • 网站开发需要多少钱销售大庆做网站找谁
  • 我做网站了四川建设主管部门网站
  • 网站开发运营经理如何做大型网站
  • 浙江网站建设流程wordpress搬迁后多媒体库无法
  • 临泉建设网站中企动力服务怎么样
  • 网站怎么做运营推广正品海外购网站有哪些
  • 做app模板下载网站个人网站 前置审批
  • 计算机编程与网站建设百度手机版网页