List集合相关应用

1.定义一个Collection类型的集合,存储以下字符串:
“JavaEE企业级开发指南”,
“Oracle高级编程”,
“MySQL从入门到精通”,
“Java基础教程”
完成以下功能
1.删除书名字符小于10个的元素,并打印
2.打印书名中包含“Java”的元素

public class Demo5 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();list.add("JavaEE企业级开发指南");list.add("Oracle高级编程");list.add("MySQL从入门到精通");list.add("Java基础教程");//打印书名中包含“Java”的元素for (int i = 0; i < list.size(); i++) {if (list.get(i).contains("Java")) {System.out.println(list.get(i));}}System.out.println("---------------------");//删除书名字符小于10个的元素,并打印删除元素for (int i = 0; i < list.size(); i++) {if(list.get(i).length()<10){String s = list.remove(i);System.out.println(s);}}System.out.println("---------------------");//删除书名字符小于10个的元素,并打印删除后集合list.removeIf(s -> {return s.length() < 10;});for (String s : list) {System.out.println(s);}}
}打印结果:
------------------------------------------------------
JavaEE企业级开发指南
Java基础教程
---------------------
Java基础教程
---------------------
JavaEE企业级开发指南
Oracle高级编程
MySQL从入门到精通

2.元素删除
删除元素“bbb"【两种方式用其一】

public class Demo2 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();list.add("aaa");list.add("bbb");list.add("bbb");list.add("ccc");list.add("ddd");//方法一:迭代器删除Iterator<String> it = list.iterator();while (it.hasNext()){String s = it.next();if("bbb".equals(s)){it.remove();//迭代器遍历元素时,集合不能参入其中//所以不能用集合的删除方法,否则出现并发修改异常}}System.out.println(list);---------------------------------------------------------------//方法二:集合删除for (int i = 0; i < list.size(); i++) {if("bbb".equals(list.get(i))){list.remove(list.get(i));i--;//由于删除后,集合后面的元素索引会+1,避免删除元素连续错过}}System.out.println(list);}
}

3.自定义集合【用于面试】
实现增删改查功能,实现迭代器超级接口

public class Test3 {public static void main(String[] args) {MyList<String> myList = new MyList<>();myList.add("hello");myList.add("world");myList.add("java");Iterator it = myList.iterator();while (it.hasNext()){Object o = it.next();System.out.println(o);}}
}//实现此接口允许对象成为“for-each loop”语句的目标
class MyList<T> implements Iterable  {//数组用于存储元素private Object[] array = {};//集合的长度private int size = 0;//初始化长度,默认为10个元素public MyList() {array = new Object[10];}//添加元素public void add(T t) {//1.先记录添加元素的位置int index = size;//2.判断这个位置的是否可以添加元素if (index >= array.length) {//如果不能添加了,则将数组长度变成1.5倍,右移的优先级比加减法更低Object[] newArray = new Object[array.length + (array.length >> 1)];//再将原数组的元素复制到新数组中System.arraycopy(array, 0, newArray, 0, size);//把新数组的地址值重新赋值给原数组array = newArray;}//没满,则添加元素array[index] = t;size++;}//修改元素public void set(int index, T t) {//先判断索引是否越界,如果是,就抛出异常if (index >= size) {throw new IndexOutOfBoundsException(index + "索引越界了");}//否则返回数组中的index位置的元素array[index] = t;}//获取元素public Object get(int index) {//先判断索引是否越界,如果是,就抛出异常if (index >= size) {throw new IndexOutOfBoundsException(index + "索引越界了");}//否则返回该元素return array[index];}//删除元素public void delete(int index) {//先判断索引是否越界,如果是,就抛出异常if (index >= size) {throw new IndexOutOfBoundsException(index + "索引越界了");}//否则删除该元素array[index] = null;/*for (int i = index; i < array.length - 1; i++) {array[i] = array[i + 1];}//最后一个元素需要置空array[array.length-1]=null;*/for (int i = index; i < size; i++) {array[i] = array[i + 1];}size--;}//获取长度public int size() {return size;}//遍历方法public void printMyList() {for (Object o : array) {if (o != null) {System.out.println(o);}}}//迭代器public Iterator iterator() {return new Ttr();}//自定义迭代器类class Ttr<T> implements Iterator<T> {//从0索引开始,往后面一个一个的获取元素int index = 0;@Overridepublic boolean hasNext() {return array[index] != null;}@Overridepublic T next() {//获取当前元素T e = (T) array[index];index++;return e;}}
}打印结果:
-----------------------------------------------------------
hello
world
java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型

转载自 消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型&#xff1f; 最近要为公司的消息队列中间件进行选型&#xff0c;市面上相关的开源技术又非常多&#xff0c;如ActiveMQ、RabbitMQ、ZeroMQ、Kafka&#xff0c;还有阿里巴巴的RocketMQ等。 这么多技术&am…

机器学习(周志华)- 第2章模型评估与选择笔记

转自&#xff1a; https://samanthachen.github.io/2016/08/03/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0_%E5%91%A8%E5%BF%97%E5%8D%8E_%E7%AC%94%E8%AE%B02/ 经验误差与过拟合 错误率&#xff1a; 分类错误样本数占样本总数 精度&#xff1a; 1 - 错误率 误差&#xff1a;学习器…

单列集合Set的实现类TreeSet

Set接口 [Collection】的子类 TreeSet a.特点【无序&#xff0c;不可重复&#xff0c;查询快&#xff0c;可自动排序】&#xff0c;但需要指定排序规则&#xff0c;API中有一些类已经实现了Comparable接口],给出了默认排序规则&#xff0c;如:Integer:数值大小[升序] String:…

关于Java你不知道的10件事

转载自 关于Java你不知道的10件事 作为 Java 书呆子&#xff0c;比起实用技能&#xff0c;我们会对介绍 Java 和 JVM 的概念细节更感兴趣。因此我想推荐 Lukas Eder 在 jooq.org 发表的原创作品给大家。 你是从很早开始就一直使用 Java 吗&#xff1f;那你还记得它的过去吗&…

模型评估与选择 ( Bias(偏差),Error(误差),和Variance(方差) )

转自&#xff1a; https://github.com/familyld/Machine_Learning/blob/master/02model_evaluation_and_model_selection.md 机器学习中的Bias(偏差)&#xff0c;Error(误差)&#xff0c;和Variance(方差)有什么区别和联系&#xff1f; 参见 https://www.zhihu.com/question…

单列集合Set的实现类HashSet

Set接口 [Collection】的子类 HashSet 特点【无序&#xff0c;不可重复,不能排序】 默认比较地址值【地址相同的值相同】&#xff0c;重写后可比较内容【内容相同的值相同】 1.比较地址值【默认】 public class Demo1 {public static void main(String[] args) {HashSet<…

双列集合Map的实现类

Map接口【和Collection接口并列】 Map接口 成员方法【实现于Map接口&#xff0c;TreeMap也可实现&#xff0c;这里以HashMap为例】 //HashMap实现类 :无序[HashSet底存原理] 哈希表 public class Demo1 {public static void main(String[] args) {HashMap<String, Intege…

机器学习指标大汇总

转自&#xff1a; http://www.36dsj.com/archives/42271 作者&#xff1a;无影随想 在使用机器学习算法的过程中&#xff0c;针对不同场景需要不同的评价指标&#xff0c;在这里对常用的指标进行一个简单的汇总。 一、分类 1. 精确率与召回率 精确率与召回率多用于二分类问题。…

到底什么是分布式系统

转载自 到底什么是分布式系统分布式系统背景 说分布式系统必须要说集中式系统&#xff0c;集中式系统中整个项目就是一个独立的应用&#xff0c;整个应用也就是整个项目&#xff0c;所有的东西都在一个应用里面。 如下图所示如一个网站就是一个应用&#xff0c;最后是多个增加多…

Map集合相关应用

1.键盘录入一个字符串&#xff0c;求该字符串中每一个字符出现的次数。 要求&#xff1a;按照字母顺序打印 如: 录入的字符串为"apple"&#xff0c;打印 a(1) e(1) l(1) p(2) public class Demo4 {public static void main(String[] args) {//键盘录入Scanner sc n…

机器学习算法常用指标总结

转自&#xff1a; http://www.cnblogs.com/maybe2030/p/5375175.html#_label2 阅读目录 1. TPR、FPR&TNR 2. 精确率Precision、召回率Recall和F1值 3. 综合评价指标F-measure 4. ROC曲线和AUC 5. 参考内容 考虑一个二分问题&#xff0c;即将实例分成正类&#xff08;positi…

SLA服务可用性4个9是什么意思?怎么达到?

转载自 SLA服务可用性4个9是什么意思&#xff1f;怎么达到&#xff1f;SLA&#xff1a;服务等级协议&#xff08;简称&#xff1a;SLA&#xff0c;全称&#xff1a;service level agreement&#xff09;。是在一定开销下为保障服务的性能和可用性&#xff0c;服务提供商与用户间…

ROC和AUC介绍以及如何计算AUC

转自&#xff1a; http://alexkong.net/2013/06/introduction-to-auc-and-roc/ ROC&#xff08;Receiver Operating Characteristic&#xff09;曲线和AUC常被用来评价一个二值分类器&#xff08;binary classifier&#xff09;的优劣&#xff0c;对两者的简单介绍见这里。这篇…

为什么Netty这么火?与Mina相比有什么优势?

转载自 为什么Netty这么火&#xff1f;与Mina相比有什么优势&#xff1f;Netty是什么&#xff1f;为什么这么火&#xff1f; Netty是目前最流行的由JBOSS提供的一个Java开源框架NIO框架&#xff0c;Netty提供异步的、事件驱动的网络应用程序框架和工具&#xff0c;用以快速开发…

一张图告诉你为什么是服务网关

转载自 一张图告诉你为什么是服务网关&#xff0c;文末有现金抽奖。网关服务是单一访问点&#xff0c;并充当多项服务的代理。服务网关启用了跨所有服务的路由转发、过滤和公共处理等。在微服务实践中远不止这点功能&#xff0c;它可以做到统一接入、流量管控、安全防护、业务隔…

offer复习日志

&#xff08;1&#xff09;复习mysql&#xff0c;只需要 2.5 个小时&#xff1b;

File类对文件的操作应用

1.在不存在的文件夹下创建文件 //在当前模块下aaa文件下ddd下eee中创建一个e.txt文件 public class Demo2 {public static void main(String[] args) throws IOException {File file new File("day11_myFile\\aaa\\ddd\\eee");//createNewFile()建立文件需要文件夹…

一张图告诉你什么是系统架构师

转载自 一张图告诉你什么是系统架构师这张图从架构师的综合能力、岗位认识、岗位职责等方面&#xff0c;清楚的画出了作为一个架构的基本准则。人人都想成为架构师&#xff0c;可作为架构你达到了上面的要求了吗&#xff1f; 系统架构师是个神奇的岗位。为什么这么说&#xff0…

机器学习和统计里面的auc怎么理解?

转自&#xff1a; https://www.zhihu.com/question/39840928 作者&#xff1a;小小丘 &#xff08;该作者对 auc的意义 讲得非常棒, 感谢付出&#xff09; 链接&#xff1a;https://www.zhihu.com/question/39840928/answer/84906286 来源&#xff1a;知乎 著作权归作者所有。…

IO流总述

IO流分类 1)按照流向分类&#xff1a; 输入流&#xff1a;读取数据用的 输出流&#xff1a;写数据用的 2)按照读写的数据分类(体系结构) <1>字节流[读写任何类型的文件(任何文件底层都是字节数据)] 字节输入流&#xff1a;IntputStream(抽象类) –FileInuptStream: 读取…