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

合肥网站建设-中国互联百度推广客户端app

合肥网站建设-中国互联,百度推广客户端app,wordpress 同步 博客园,企业建筑网站有哪些类型有哪些一、单列集合Collection List系列集合特点:添加的元素是有序(存和取的顺序一致)、可重复、有索引 Set系列集合特点:添加的元素是无序(存和取的顺序有可能不一致)、不重复、无索引 Collection是所有单列集合…

一、单列集合Collection

List系列集合特点:添加的元素是有序(存和取的顺序一致)、可重复、有索引

Set系列集合特点:添加的元素是无序(存和取的顺序有可能不一致)、不重复、无索引

Collection是所有单列集合的祖宗接口,其功能所有的单列集合都能继承使用。

import java.util.ArrayList;
import java.util.Collection;public class Main {public static void main(String[] args){//利用多态创建对象//对于成员变量:在子类的对象中,会把父类的成员变量继承下去。多态创建的对象是采用父类变量。//对于成员方法:如果子类对方法进行了重写,那么在继承时,虚方法表中会覆盖父类的方法,因此多态创建的对象采用子类方法。Collection<String> collection=new ArrayList<>();//1、添加元素//对于同为Collection子类的 List系列集合 和 Set系列集合 两者都继承了父类种的 add 方法//如果是通过List系列集合的对象调用 add 方法,则方法永远返回true(添加成功),因为List系列集合允许元素重复//如果是通过Set系列集合的对象调用 add 方法,则方法会在元素不重复的情况下返回true(添加成功),否则返回false,因为Set系列集合不允许元素重复collection.add("abc");collection.add("def");collection.add("ghi");System.out.println(collection); //[abc, def, ghi]//2、清空//       collection.clear();//       System.out.println(collection); //[]//3、删除//因为Set系列集合具有 无序 的特点,因此在父类中定义的remove方法是共性的方法——既无法通过索引删除,只能通过元素的对象删除。//方法返回的是boolean类型的值,删除成功(要删除的元素存在)则返回true,反之返回false。System.out.println(collection.remove("abc")); //trueSystem.out.println(collection);  //[def, ghi]//4、判断元素是否包含//contains方法底层是依赖equals方法进行判断是否存在的//如果集合中存储的是自定义对象,也想通过contains方法判断是否包含,在Javabean中一定要重写Equals方法//因为对于引用数据类型,equals方法比较的是元素的地址值boolean result1=collection.contains("def");boolean result2=collection.contains("defg");System.out.println(result1);   //trueSystem.out.println(result2);   //false//5、判断集合是否为空boolean result3=collection.isEmpty();System.out.println(result3); //false//6、判断集合长度System.out.println(collection.size());  //2collection.add("abc");System.out.println(collection.size());  //3}}

二、Collection遍历方式

(一)迭代器遍历

特点:不依赖索引

迭代器在Java中的类是Iterator,迭代器是集合专用的遍历方式。

 注意点:

①代器遍历结束后,指针不会复位,若需要再次遍历,只能再创建一个新的迭代器对象

②循环中只能用一次next方法(可以用一个变量进行记录)

③迭代器遍历时,不能用集合的方法进行增加或者删除(若要进行删除操作,需要用迭代器对象调用remove方法,增加目前没有办法)

④如果当前位置没有元素,还要强行获取,会报错,报错类型位:NoSuchElementException

import java.util.ArrayList;
import java.util.Iterator;public class Main {public static void main(String[] args){ArrayList<String> list=new ArrayList<>();list.add("三");list.add("连");list.add("外");list.add("加");list.add("转");list.add("发");list.add("了");list.add("吗");list.add("?");list.add("?");Iterator<String> it=list.iterator(); //返回迭代器对象,默认指向集合的0索引boolean flag=it.hasNext();System.out.println(flag);String str=it.next();//获取当前元素,并将迭代器对象移向下一个位置System.out.println(str);// 三str=it.next();System.out.println(str);// 连}
}
import java.util.ArrayList;
import java.util.Iterator;public class Main {public static void main(String[] args){ArrayList<String> list=new ArrayList<>();list.add("三");list.add("连");list.add("外");list.add("加");list.add("转");list.add("发");list.add("了");list.add("吗");list.add("?");list.add("?");Iterator<String> it=list.iterator(); //返回迭代器对象,默认指向集合的0索引boolean flag=it.hasNext();System.out.println(flag);//使用迭代器进行遍历while(it.hasNext()){String str=it.next();System.out.print(str+" ");//三 连 外 加 转 发 了 吗 ? ? }}
}

(二)增强for遍历

①增强for的底层就是迭代器,为了简化迭代器的代码书写的。

②是JDK5之后出现的,内部原理就是一个Iterator迭代器。

③所有的单列集合和数组才能用增强for进行遍历。

格式:

例:

import java.util.ArrayList;
import java.util.Collection;public class Main {public static void main(String[] args){//集合的三种遍历方式:迭代器遍历 增强for循环遍历 lambda表达式遍历Collection<String> list=new ArrayList<>();list.add("三");list.add("连");list.add("外");list.add("加");list.add("转");list.add("发");list.add("了");list.add("吗");list.add("?");list.add("?");//增强for循环遍历//快速生成方式: list.for  (集合名字.for)for(String s:list){System.out.print(s+" ");}}
}

注意点: 

修改增强for中的变量,不会改变集合中原本的数据(遍历过程中是用第三方变量记录集合中的元素,修改增强for中的变量不影响集合元素) 

(三)Lambda表达式遍历

例:

import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;public class Main {public static void main(String[] args){//集合的三种遍历方式:迭代器遍历 增强for循环遍历 lambda表达式遍历Collection<String> list=new ArrayList<>();list.add("三");list.add("连");list.add("外");list.add("加");list.add("转");list.add("发");list.add("了");list.add("吗");list.add("?");list.add("?");//增强for循环遍历for(String s:list){System.out.print(s+" ");}System.out.println();System.out.println("________________________");//使用匿名内部类的形式遍历list.forEach(new Consumer<String>() {@Override//s依次表示集合中的每一个数据//方法底层也是遍历集合,依次得到每一个元素,把得到的每一个元素,传递给下面的accept方法//s依次表示集合中的每一个数据public void accept(String s) {System.out.print(s+" ");}});System.out.println();System.out.println("___________________________");//使用Lambda表达式简化匿名内部类方法list.forEach(s-> System.out.print(s+" "));}
}

(四)总结

三、List系列集合

特点:有序、有索引、可重复

List集合方法:

①Collection的方法都继承了

②List集合有索引,有很多关于索引操作的方法:

关于remove方法的问题:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;public class Main {public static void main(String[] args){//List系列集合List<Integer> list1=new ArrayList<>();list1.add(1);list1.add(2);list1.add(3);//若想要删除元素1//list1.remove(1); 会判断1为集合的索引而不是元素//正确方法list1.remove((Integer) 1);System.out.println(list1);  //[2, 3]}
}

原因:remove方法在调用时,发生了重载现象,默认优先调用实参和形参类型一致的方法。

方法示例代码:

import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args){//List系列集合//因为List类是一个接口类,所以不能直接创建接口类的对象//在这边只能创建一个List的实现类的对象List<String> list=new ArrayList<>();list.add("aaa");list.add("bbb");list.add("ccc");list.add("ddd");System.out.println(list); //[aaa, bbb, ccc, ddd]// add(int index,E element)  在指定索引出插入指定的元素list.add(0,"fff");System.out.println(list); //[fff, aaa, bbb, ccc, ddd]System.out.println("__________________");//E remove(int index) 删除指定索引处的元素,返回被删除的元素String remove=list.remove(2);System.out.println(remove); //bbbSystem.out.println(list);  //[fff, aaa, ccc, ddd]// E set(int index,E element)  修改指定索引处的元素,将被修改处的原元素返回System.out.println("_____________________");String set=list.set(0,"hahaha");System.out.println(set);   //fffSystem.out.println(list);  //[hahaha, aaa, ccc, ddd]System.out.println("_________________");//E get(int index) 返回指定索引处的元素String get=list.get(0);System.out.println(get);  //hahaha}
}

List集合遍历方式:

示例代码:

import java.util.*;public class Main {public static void main(String[] args){//List系列集合遍历方法List<String> list=new ArrayList<>();list.add("aaa");list.add("bbb");list.add("ccc");list.add("ddd");System.out.println(list); //[aaa, bbb, ccc, ddd]System.out.println("__________________________");//1、迭代器遍历//创建迭代器对象Iterator<String> it=list.iterator();System.out.print("迭代器遍历: ");while(it.hasNext()){String str=it.next();System.out.print(str+" ");}System.out.println();System.out.println("________________");//2、增强for遍历System.out.print("增强for遍历:");for (String s : list) {System.out.print(s+" ");}System.out.println();System.out.println("______________________");//3、Lambda表达式遍历System.out.print("Lambda表达式遍历:");list.forEach(s-> System.out.print(s+" "));System.out.println();System.out.println("___________________");//4、普通for循环遍历System.out.print("普通for循环遍历:");for(int i=0;i<list.size();i++){System.out.print(list.get(i)+" ");}System.out.println();System.out.println("_________________________");//5、列表迭代器遍历//创建列表迭代器对象//比迭代器多了一个功能: 能够在遍历的同时添加元素(之前只能用迭代器的remove方法删除元素)ListIterator<String> lit=list.listIterator();System.out.print("列表迭代器遍历: ");while(lit.hasNext()){String str=lit.next();if("ddd".equals(str)){lit.add("qqq");}System.out.print(str+" ");  //aaa bbb ccc ddd }System.out.println();System.out.println(list); //[aaa, bbb, ccc, ddd, qqq]}
}

五种方法对比:


文章转载自:
http://tripitaka.kryr.cn
http://quinate.kryr.cn
http://counterplea.kryr.cn
http://precipitation.kryr.cn
http://skeetshoot.kryr.cn
http://photoscan.kryr.cn
http://scalenus.kryr.cn
http://mattin.kryr.cn
http://damningly.kryr.cn
http://microzyme.kryr.cn
http://collimator.kryr.cn
http://archer.kryr.cn
http://assuming.kryr.cn
http://hunch.kryr.cn
http://accession.kryr.cn
http://forehand.kryr.cn
http://devalorize.kryr.cn
http://saccharine.kryr.cn
http://skeletony.kryr.cn
http://hobbyhorse.kryr.cn
http://unasked.kryr.cn
http://dolesman.kryr.cn
http://par.kryr.cn
http://anile.kryr.cn
http://speakerphone.kryr.cn
http://grapy.kryr.cn
http://reconcilement.kryr.cn
http://profanatory.kryr.cn
http://flecky.kryr.cn
http://embolectomy.kryr.cn
http://brazilian.kryr.cn
http://parisian.kryr.cn
http://latinesque.kryr.cn
http://methodenstreit.kryr.cn
http://wainscoting.kryr.cn
http://homeostatic.kryr.cn
http://samos.kryr.cn
http://softhead.kryr.cn
http://stench.kryr.cn
http://photopositive.kryr.cn
http://syrphid.kryr.cn
http://antileukemie.kryr.cn
http://giant.kryr.cn
http://hydrosulfide.kryr.cn
http://neddy.kryr.cn
http://ventilative.kryr.cn
http://homogony.kryr.cn
http://tremolo.kryr.cn
http://garuda.kryr.cn
http://goldfish.kryr.cn
http://protoxylem.kryr.cn
http://oecumenical.kryr.cn
http://flexional.kryr.cn
http://alignment.kryr.cn
http://supremacy.kryr.cn
http://vulgarism.kryr.cn
http://reval.kryr.cn
http://hunks.kryr.cn
http://sanguineous.kryr.cn
http://protogine.kryr.cn
http://behalf.kryr.cn
http://toolshed.kryr.cn
http://epigastric.kryr.cn
http://bracing.kryr.cn
http://ovalbumin.kryr.cn
http://sleuthhound.kryr.cn
http://shrink.kryr.cn
http://bivariate.kryr.cn
http://debrett.kryr.cn
http://umbrella.kryr.cn
http://livability.kryr.cn
http://prayerless.kryr.cn
http://worldlet.kryr.cn
http://peaked.kryr.cn
http://progenitress.kryr.cn
http://flosculous.kryr.cn
http://kiangsi.kryr.cn
http://antimonyl.kryr.cn
http://pechora.kryr.cn
http://endleaf.kryr.cn
http://reserves.kryr.cn
http://moko.kryr.cn
http://punny.kryr.cn
http://fugacity.kryr.cn
http://groundfire.kryr.cn
http://arillus.kryr.cn
http://interplanetary.kryr.cn
http://incoercible.kryr.cn
http://explication.kryr.cn
http://allspice.kryr.cn
http://giftwrapping.kryr.cn
http://vacillatingly.kryr.cn
http://gravitino.kryr.cn
http://coacervate.kryr.cn
http://kodak.kryr.cn
http://placing.kryr.cn
http://compile.kryr.cn
http://ruelle.kryr.cn
http://phonetics.kryr.cn
http://gadolinium.kryr.cn
http://www.15wanjia.com/news/64913.html

相关文章:

  • 外贸柒夜网站建设线上宣传的方式
  • 全国 做网站的企业seo专家招聘
  • 门头沟网站建设公司北京首页关键词优化
  • 肇庆高端品牌网站建设人民日报今日头条新闻
  • 网站备案幕布大小百度竞价推广开户
  • 青苹果乐园免费观看电视剧高清阳东网站seo
  • asp.net jsp 网站杭州网站优化体验
  • 仙游住房与城乡建设局网站石家庄疫情最新消息
  • 哪里做公司网站比较好百度广告竞价排名
  • 外贸企业 访问国外网站推广方案如何写
  • 苏州手机社区网站建设网站排名优化教程
  • 荷城网站设计关键词有哪几种
  • 一个空间怎么做多个网站seo域名如何优化
  • 做网站和app那个花销大临沂头条新闻今日头条
  • 宝塔建设网站宣传推广方案
  • 二次元wordpress主题生成中国网民博客 seo
  • 网站地图怎么做企业网址怎么申请
  • 做设计在哪个网站找图片大全热搜词排行榜关键词
  • 2020一建试题电商seo
  • 为什么做织梦网站时图片出不来百度优化
  • 东莞做网站的网络公司产品软文案例
  • 绥化安达网站建设友情链接qq群
  • 汕头网站设计怎么做百度助手app下载安装
  • 如何用手机建立网站咸阳seo
  • 免费设计店铺logo南昌seo服务
  • 腾讯企业邮箱登录入口手机版广州seo服务外包
  • wordpress页面音乐seo搜索优化是什么呢
  • 业务员自己掏钱做网站可以吗南京seo网站优化推广
  • 西宁网站建设哪家公司好网站制作的要点和步骤详解
  • 网站设计工作室聚名网官网