Java基础知识(二十六)集合
目录
一、集合的概述:
1、集合与数组的不同点:
2、集合的特点:
二、Collection接口:
1、Collection中的各种功能:
二、集合的遍历:
1、使用获取功能实现遍历:
三、 List接口(继承自Collection接口)
1、List接口的特点:
2、List相关集合拥有的功能:
一、集合的概述:
引例:利用数组存储三个学生信息,遍历数组获取每个学生信息。
该例的实现较为简单,但是当数组中突然需要加入一个新同学的信息时,则需要重新创建一个长度为四的数组重新实现,若是数据过多则需要不断的创建新的数组去存放,这样的操作非常繁琐,于是Java可以根据元素的不同,元素的特点和存储的方式不同提供一个集合继承机制供使用。
1、集合与数组的不同点:
1、数组的长度是不可变的,集合的长度是可变的
2、数组可以存放同一种基本数据类型或引用数据类型的元素,而集合只能存放引用数据类型的元素,但集合可以存放不同引用数据类型的元素。(实际开发中一个集合只存放一种引用数据类型元素)
2、集合的特点:
集合只用于存储对象;集合长度是可变的;集合可以存放不同类型的对象。
集合不是单一的,针对不同的需求,使用Java提供的不同的集合。这些不同的集合应该有某种共性,根据他们之间的共性不断向上提取,最终形成一个继承机制。
集合的继承体系(机制)
简略图:
二、Collection接口:
是集合的顶层接口,它存在由他展开而来的继承体系
由于Collection是一个接口,所以无法被实例化,我们需要找它一个子类来进行接口多态的方式实例化,暂时使用ArrayList来举例
1、Collection中的各种功能:
1、添加功能:
boolean add(Object e) 确保此集合包含指定的元素(可选操作)
boolean addAll(Collection c) 将指定集合的所有元素添加到此集合(可选操作)
2、删除功能:
boolean remove(Object o) 从该集合中删除指定元素的单个实例(如果存在)
boolean removeAll(Collection c) 删除指定集合中包含的所有此集合的元素
void clear()从此集合中删除所有元素
3、获取功能:
Iterator iterator() 返回此集合中的元素的迭代器
4、判断功能:
boolean contains(Object o) 如果此集合包含指定元素,返回true
boolean containsAll(Collection c) 如果此集合包含指定集合中的所有元素,则返回true
boolean isEmpty() 如果此集合不包含元素,则返回true
5、获取长度方法:
int size() 返回此集合中的元素数
6、求交集功能:
boolean retainAll(Collection c) 仅保留此集合中包含在指定集合中的元素
7、将集合转为数组:
Object[] toArray() 返回一个包含此集合中的所有元素的数组
具体部分实现:
import java.util.ArrayList;
import java.util.Collection;public class Test1 {public static void main(String[] args) {Collection c=new ArrayList();
// Collection的添加功能:c.add("hello");c.add("world");c.add("java");c.add("bigdata");System.out.println("添加后的集合:"+c);
// Collection的删除功能remove:c.remove("world");System.out.println("删除后的集合:"+c);
// Collection的判断功能:System.out.println("判断是否含有world:"+c.contains("world"));
// 判断是否为空:System.out.println("判断是否为空:"+c.isEmpty());
// 获取长度:System.out.println("集合的长度为"+c.size());
// Collection的删除功能clear:c.clear();System.out.println("清除后的集合:"+c);}
}
输出结果:
对于使用在两个集合之间的功能实现如下:
import java.util.ArrayList;
import java.util.Collection;
/*boolean addAll(Collection c) 将指定集合中的所有元素添加到此集合(可选操作)boolean removeAll(Collection c) 删除指定集合中包含的所有此集合的元素(可选操作)。boolean containsAll(Collection c) 如果此集合包含指定 集合中的所有元素,则返回true。boolean retainAll(Collection c) 仅保留此集合中包含在指定集合中的元素(可选操作)。*/
public class Test2 {public static void main(String[] args) {Collection c1 = new ArrayList();c1.add("hello");c1.add("world");c1.add("java");c1.add("bigdata");System.out.println(c1);Collection c2=new ArrayList();c2.add("hello");c2.add("world");c2.add("superman");System.out.println(c2);System.out.println("==============================================");System.out.println("将c2添加到c1:" );c1.addAll(c2);System.out.println(c1);System.out.println(c2);System.out.println("==============================================");System.out.println("判断c1是否包含c2:");boolean b = c1.containsAll(c2);System.out.println(b);System.out.println("==============================================");System.out.println("c1仅保留c2中的元素(取交集):");
// 取交集功能c1.retainAll(c2);System.out.println(c1);System.out.println(c2);
// c1对c2交集,结果保存在c1中,c2不变,且c1删除与c2不是共同的元素System.out.println("==============================================");System.out.println("将c1中删除包含c2中的元素:");c1.removeAll(c2);System.out.println(c1);System.out.println(c2);}
}
输出结果:
二、集合的遍历:
目的就是将集合中的元素依次提取出来
使用到功能7:将集合转为数组 : toArray()方法
具体实现为将集合转为数组,再对数组进行遍历即可:
import java.util.ArrayList;
import java.util.Collection;public class Test3 {public static void main(String[] args) {Collection c=new ArrayList();c.add("hello");c.add("world");c.add("java");c.add("bigdata");
// 使用toArray()将集合转为数组Object[] objects = c.toArray();
// 对数组进行遍历for(int i=0;i< objects.length;i++){System.out.println(objects[i]);//Object o = objects[i](String类型的)
/* 这里使用Object类型接收,但是实际上是String类型这就形成了一个多态
*/}}
}
输出结果:
若是想要获取每一个字符串元素的长度,直接加入一行语句:
System.out.println(objects[i].length());
会报错:因为这里使用的是多态,编译看左,运行看右,Object类中没有length()方法。
所以需要向下转型,具体代码:
import java.util.ArrayList;
import java.util.Collection;public class Test3 {public static void main(String[] args) {Collection c=new ArrayList();c.add("hello");c.add("world");c.add("java");c.add("bigdata");
// 使用toArray()将集合转为数组Object[] objects = c.toArray();
// 这里由于不清楚该集合转为数组后是什么数据类型,因此使用Object[]类型接收
// 对数组进行遍历for(int i=0;i< objects.length;i++){
// System.out.println(objects[i]);
// 获取每个字符串元素的长度:
// 向下转型:String s=(String)objects[i];System.out.println(s+"---"+s.length());}}
}
输出结果:
学生实例:
import java.util.ArrayList;
import java.util.Collection;/*需求:向集合中添加3个学生对象,并遍历学生学生信息*/
public class Test3a {public static void main(String[] args) {
// 创建集合对象Collection c=new ArrayList();
// 创建学生对象Student s1=new Student("马超",18);Student s2=new Student("关羽",17);Student s3=new Student("张飞",16);
// 将学生对象添加到集合中c.add(s1);c.add(s2);c.add(s3);
// 将集合转换为数组Object[] objects = c.toArray();
// 遍历数组for (int i=0;i<objects.length;i++){
// 向下转型Student s=(Student)objects[i];System.out.println(s.getName()+"---"+s.getAge());}}
}
输出结果:
1、使用获取功能实现遍历:
Iterator iterator() 返回此集合中的元素的迭代器。 它是Collection集合遍历的专有方式
迭代器是一个接口
两个主要方法:
boolean hasNext() 判断迭代器中是否还有元素
Object next() 返回迭代器中的元素
使用迭代器实现遍历:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class Test4 {public static void main(String[] args) {Collection c=new ArrayList();c.add("hello");c.add("world");c.add("java");c.add("bigdata");
// 获取迭代器对象Iterator iterator = c.iterator();//Iterator iterator = new Itr();
// 该接口的具体实现是类Itr()
// System.out.println(iterator);//java.util.ArrayList$Itr@4554617c
// 使用next()获取下一个元素Object next = iterator.next();System.out.println(next);//获取helloSystem.out.println(iterator.next());//获取worldSystem.out.println(iterator.next());//获取javaSystem.out.println(iterator.next());//获取bigdata
// System.out.println(iterator.next());//NoSuchElementException/*当无意中多使用一次next方法时,报错原因是该遍历已经执行到最后一个元素了,不应该再指向下一个元素,是多余的*/}
}
输出结果:
上述代码中出现的问题的解决办法:在执行next方法前加入判断:hasnext()
以下为改进代码:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class Test4 {public static void main(String[] args) {Collection c=new ArrayList();c.add("hello");c.add("world");c.add("java");c.add("bigdata");
// 获取迭代器对象Iterator iterator = c.iterator();//Iterator iterator = new Itr();
// 该接口的具体实现是类Itr()
// System.out.println(iterator);//java.util.ArrayList$Itr@4554617c// 解决办法:在执行next方法前加入判断:hasnext()if(iterator.hasNext()){System.out.println(iterator.next());}if(iterator.hasNext()){System.out.println(iterator.next());}if(iterator.hasNext()){System.out.println(iterator.next());}if(iterator.hasNext()){System.out.println(iterator.next());}if(iterator.hasNext()){System.out.println(iterator.next());}}
}
输出结果同上面相同,但这里加入了判断之后,使用了五次if判断和next方法,但不影响最终结果。若是添加到集合中的数据量过于庞大,使用if语句的次数便不明确,这里使用while循环进一步进行改进。
最终改进代码为:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class Test4 {public static void main(String[] args) {Collection c=new ArrayList();c.add("hello");c.add("world");c.add("java");c.add("bigdata");
// 获取迭代器对象Iterator iterator = c.iterator();//Iterator iterator = new Itr();
// 该接口的具体实现是类Itr()
// System.out.println(iterator);//java.util.ArrayList$Itr@4554617c// 使用while循环改进:while(iterator.hasNext()){Object next = iterator.next();String s=(String)next;System.out.println(s+"---"+s.length());}}
}
最终输出结果:
1、 能否将while循环改为for循环?
可以,但是一般情况下不推荐使用普通for循环遍历
2、java为什么要将iterator定义为一个接口而不是一个类?
将来需要根据不同的数据创建不同的集合去存储,每个集合都有自身特点,很有可能每一个集合遍历的顺序和方式都不一样 所以将来取值的时候,使用的方式也不一定是一样的,所以迭代器不应该直接实现如何遍历,而是提供一个接口 将来特有的集合类去实现这个接口中的取值方法,来实现自身的取值特点。
相关案例:
存储自定义对象并遍历:
首先定义一个Student类:
public class Student {private String name;private int age;public Student() {}public Student(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;}
}
其次相关代码如下:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;/*存储自定义对象并遍历*/
public class CollectionTest2 {public static void main(String[] args) {//1、创建集合对象Collection c = new ArrayList();//2、创建学生对象Student s1 = new Student("张飞", 17);Student s2 = new Student("关羽", 18);Student s3 = new Student("赵云", 19);Student s4 = new Student("黄忠", 20);Student s5 = new Student("马超", 21);//3、将学生对象添加到集合中c.add(s1);c.add(s2);c.add(s3);c.add(s4);c.add(s5);//4、遍历集合//获取迭代器对象Iterator iterator = c.iterator();//遍历迭代器获取元素while (iterator.hasNext()) {Student s = (Student) iterator.next();System.out.println(s.getName() + "---" + s.getAge());}}
}
输出结果:
三、 List接口(继承自Collection接口)
1、List接口的特点:
1、List集合中的元素是有序的(存储和取出顺序相同)存储1,2,3,4,5,输出1,2,3,4,5
2、List集合包含了索引的概念
3、List集合中的元素是可以重复的
相关案例:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class ListTest1 {public static void main(String[] args) {
// 创建List集合对象List list=new ArrayList();
// 添加元素list.add("hello");list.add("world");list.add("java");list.add("bigdata");
// 遍历Iterator iterator=list.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}}
}
输出结果:
2、List相关集合拥有的功能:
因为List集合拥有下标索引的概念,故根据这个概念衍生出特有方法:
1、添加功能:
void add(int index, Object element)
将指定的元素插入此列表中的指定位置(可选操作)。
2、删除功能:
Object remove(int index) 删除该列表中指定位置的元素(可选操作)。
3、获取功能:
Object get(int index) 返回此列表中指定位置的元素。
4、修改功能:
Object set(int index, Object element) 用指定的元素(可选操作)替换此列表中指定位置的元素。
5、List集合特有的迭代器
ListIterator listIterator() 返回列表中的列表迭代器(按适当的顺序)。
功能1到4的实现:
import java.util.ArrayList;
import java.util.List;public class ListTest2 {public static void main(String[] args) {List list=new ArrayList();list.add("hello");list.add("world");list.add("java");list.add("bigdata");System.out.println(list);
// 添加功能:list.add(0,"hadoop");System.out.println(list);list.add(2,"hive");System.out.println(list);list.add(6,"spark");System.out.println(list);
// list.add(10,"flink");
// System.out.println(list);//IndexOutOfBoundsException
// 这里会有索引越界异常,因此得出添加索引范围为:
// 0<=index<=size(),一旦超出该范围则会异常System.out.println("============================================");System.out.println("删除前:\r\n"+list);
// 删除功能:System.out.println(list.remove(3));System.out.println("删除后:\r\n"+list);System.out.println("============================================");
// 获取功能:System.out.println("获取元素:"+list.get(4));System.out.println(list);System.out.println("============================================");
// 修改功能:Object o = list.set(4, "Superman");System.out.println("被修改的元素:"+o);System.out.println(list);}
}
输出结果:
List特有的迭代器:
ListIterator listIterator() 返回列表中的列表迭代器(按适当的顺序)。
public interface ListIterator extends Iterator
由于继承自Iterator接口,故内部一定具有hasNext()和next()方法
其中还含有的方法:
Object previous() 返回列表的上一个元素,并向后移动光标位置
可以反复调用此方法以向后方遍历列表,或者与调用next()进行混合来回。
1、该方法是获取集合中前一个元素
2、该方法获取元素的指针与next()获取元素的指针是同一个
注意:要想倒着遍历,就必须先正着遍历,先将指针移动到末尾。在开发中不常用,但是在面试中可能会问到。
boolean hasPrevious() 返回 true如果遍历反向列表,列表迭代器有多个元素。 判断上一个位置是否有元素,如果有元素返回true,如果没有元素,返回false。
代码举例:
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;public class ListDemo3 {public static void main(String[] args) {//1、创建List集合对象List list = new ArrayList();//2、添加元素到集合中list.add("hello");list.add("world");list.add("java");list.add("bigdata");//3、遍历
// Object previous = listIterator.previous();
// System.out.println(previous); //NoSuchElementException
// 若是直接使用previous会报错,因为此时光标是在第一个位置,没有上一个元素ListIterator listIterator = list.listIterator();while (listIterator.hasNext()) {String s = (String) listIterator.next();System.out.println(s + ",字符串的长度为:" + s.length());}System.out.println("==============使用previous================");while (listIterator.hasPrevious()){Object previous = listIterator.previous();System.out.println(previous);}}
}
输出结果:
List集合特有的遍历方式:size()与get()方法结合使用:
具体实现:三种方法一同实现:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class ListTest3 {public static void main(String[] args) {List list=new ArrayList();Student s1=new Student("刘备",51);Student s2=new Student("曹操",45);Student s3=new Student("孙权",40);list.add(s1);list.add(s2);list.add(s3);// 遍历
// a:转成数组遍历Object[] obj = list.toArray();for(int i=0;i< obj.length;i++){Student s=(Student)obj[i];System.out.println(s.getName()+"---"+s.getAge());}System.out.println("===============================================");
// b:迭代器遍历:Iterator iterator = list.iterator();while(iterator.hasNext()){Student s=(Student)iterator.next();System.out.println(s.getName()+"---"+s.getAge());}System.out.println("===============================================");
// c:size()与get()方法结合使用for(int i=0;i< list.size();i++){Student s=(Student)list.get(i);System.out.println(s.getName()+"---"+s.getAge());}}
}
输出结果:
现在有一个需求:有一个集合,集合中存储着一些字符串类型的元素,我想判断一下里面有没有"bigdata"这个字符串 如果有,我们就添加一个"yes"。
按照我们上述所学知识,使用Iterator迭代器遍历即可:
但实际上当我们使用迭代器遍历时,会报错:
ConcurrentModificationException: 并发修改异常 当不允许这样的修改的时候,java就检测到该对象出现了并发修改异常。
原因:
迭代器是依赖于集合而存在的,在遍历迭代器中的元素的时候,当我们判断成功后,往集合中添加一个元素,但是这时候,迭代器并不知道已经添加了元素,所以迭代器依然不变,但此时迭代器的元素和集合就不一致了,所以就报错了。
简单描述:在迭代器遍历的时候,不能通过集合去修改元素
解决办法:迭代器遍历,迭代器修改;集合遍历,集合修改
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;public class ListDemo6 {public static void main(String[] args) {//1、创建一个集合对象List list = new ArrayList();//2、向集合中添加元素list.add("hello");list.add("world");list.add("java");list.add("bigdata");list.add("hive");//遍历
// Iterator iterator = list.iterator();
// while (iterator.hasNext()){
// Object next = iterator.next();
// String s = (String) next;
// if("bigdata".equals(s)){
// list.add("yes");
// }
// }
// 以下为两种解决办法://迭代器遍历,迭代器修改
// ListIterator listIterator = list.listIterator();
// while (listIterator.hasNext()){
// Object next = listIterator.next();
// String s = (String) next;
// if("bigdata".equals(s)){
// listIterator.add("yes"); //在bigdata后面添加,因为此时指针正好指到这里
// }
// }//集合遍历,集合修改for(int i=0;i<list.size();i++){String s = (String) list.get(i);if("bigdata".equals(s)){list.add("yes"); //在集合末尾添加}}System.out.println(list);}
}
输出结果:两种输出结果:
迭代器遍历输出结果:yes加在当前光标所处位置
集合遍历输出结果:yes加在末尾
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- nym热度高涨,有何优势让nym网络成为下一代隐私基础设施
大家好这里是最了解一级市场的德纳社区,我们会不定期整理一级市场中优质的分享给大家,如果你感觉二级市场风险大,不妨尝试下一级市场 目前社会什么比较重要?是不是我们个人的隐私?网络的发展这么快速,我们个…...
2024/4/16 16:05:49 - HCIE-Security Day7:3个实验理解双向NAT
目录 外网用户访问内网服务器 私网用户访问内部服务器 同时转换报文的源信息和目的信息,不是单独的功能,而是源NAT和目的NAT的组合,双向NAT是针对同一条流,在其经过防火墙时同时转换报文的源地址和目的地址。 主要用在两个…...
2024/4/27 11:49:06 - android studio 常用控件属性(二)
部分内容是截取享学课堂老师的ppt 视频在小破站可以看 感谢leo老师 每点击一次就增加进度 ProgressBar主要属性 默认的toolbar是在res西面的themes.xml下面 更改完就没有了默认的了 ToolBar主要属性...
2024/4/19 11:06:28 - 【01Studio MaixPy AI K210】2.流水灯
目录 硬件准备: 引脚图: 导包: utime库 注册引脚: 构造GPIO口的对象: 例程: (以下内容均为个人所学总结,希望对你有所帮助,感谢你的阅读!!…...
2024/4/13 6:43:35 - Spring Boot 踩坑之路之 Configuration Annotation Proessor not found in classpath
Spring Boot 踩坑之路之 Configuration Annotation Proessor not found in classpath idea会提示到官网看 http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html 看官网比较好...
2024/4/14 4:40:00 - 深入理解Java虚拟机——判断对象是否存活
目录一、判断对象是否存活的方式二、引用计数法2.1、引用计数法的概述2.2、引用计数法的缺点2.3、查看对象是否被回收掉三、可达性分析3.1、可达性分析的概述3.2、GC Roots的对象的概述一、判断对象是否存活的方式 引用计数法可达性分析 二、引用计数法 2.1、引用计数法的概…...
2024/4/13 13:50:39 - 【数据结构与算法】之深入解析“最大矩形”的求解思路和算法示例
一、题目要求 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例 1: 输入:matrix [["1","0","1","0","0"],["…...
2024/4/15 2:58:33 - JAVA中scanner的用法
1. java中不能直接使用scanner,需要用java.util.scanner声明使用,在这里使用了*代表所有 2. 需要给用户开启一个键盘录入数据的入口,使用input命名可以重复使用 3. 使用String创建一个字符串,输入数据接收 创建一个double类型,…...
2024/4/13 6:43:25 - ACM训练: 神奇的fans
题目描述传说fans是一个数学天才。在他五岁那年,从一堆数字卡片中选出了4张 卡片:5,7,6,8。这4个数字有什么神秘之处呢?如果把这4张卡片自左往右的排成:5,6,7,…...
2024/4/13 6:43:40 - UE4-UCheatManager
// // CheatManager // Object within playercontroller that manages development "cheat" // commands only spawned in single player mode // No cheat manager is created in shipping builds. // // 作弊管理器 // playercontroller 中管理开发“作弊”的对象…...
2024/4/5 2:10:20 - 王子健:腾讯幻核的NFT是否值得买?
如今元宇宙、NFT大热。国内的明星和上市公司都在纷纷涉足该领域,都试图从中分得一杯羹。众多投资者也开始关注这个领域,想通过投资NFT获得可观收益。那么腾讯幻核的NFT是否值得买呢?想必,很多收藏家都有相同的疑问。首先ÿ…...
2024/4/5 2:10:19 - zblog插件-zblog搜狗推送插件
怎么利用zblog插件把关键词优化到首页,怎么快速做到网站收录?之前看到很多文章是关于原创文章对于网站收录的重要性,甚至百度官方也在说原创文章的重要性,当然也有作者对于原创文章有些不屑,之前我也写过一篇文章是关于原创文章对…...
2024/4/18 11:08:43 - 【无标题】视图解析器时prefix和suffix爆红问题
SpringMVC在配置InternalResourceView视图解析器时prefix和suffix爆红是因为包的问题将org.springframework.web.servlet.view.InternalResourceView换成org.springframework.web.servlet.view.InternalResourceViewResolver就可以了...
2024/4/16 4:33:54 - 2062:【例1.3】电影票
2062:【例1.3】电影票 【题目描述】 已知一位小朋友的电影票价是10元,计算x位小朋友的总票价是多少? 【输入】 输入x。 【输出】 人数和电影票总价,中间用一个空格隔开。 【输入样例】 2 【输出样例】 2 20#include<iostrea…...
2024/4/20 4:22:08 - 快乐Java——将项目上传maven中央库
需求 污染中央仓库(bushi) 过程有点繁琐: 注册一个账户发布一个申请证明Github身份自由上传检验发布 注册一个账户 网址:https://issues.sonatype.org/secure/Dashboard.jspa 发布一个申请 要求是有一个Github开源库。 证…...
2024/4/13 6:44:41 - shell脚本中文件描述符
shell脚本中文件描述符 文件描述符特征 文件描述符是一个非负整数,内核需要通过这个文件描述符才可以访问文件当在系统中打开已有的文件或者新建文件时,内核每次都会给特定的进程返回一个文件描述符,进程需要对文件进行读或写操作时&#x…...
2024/4/19 1:33:24 - 第一章:.NET体系结构(1)
1、C#与.NET的关系 C#编译器专门用于.NET,这表示用C#编写的所有代码总是在.NET Framework中运行。对于C#语言来说,可以得出两个重要的结论: (1)C#的结构和方法论发硬了.NET基础方法论。 (2)在许…...
2024/4/8 18:51:37 - c语言代码实现三子棋(详解)
设计总体思路 实现游戏可以一直玩,先打印棋盘,玩家和电脑下棋,最后分出胜负。 具体步骤 目录 一、打印游戏菜单界面 二、打印棋盘 三、玩家下棋 四、电脑下棋 五、判断输赢 一、打印游戏菜单界面 首先界面有选项选择,开始…...
2024/4/13 6:44:31 - Quartus II 中编译警告解决办法整理
Quartus II 中编译警告解决办法,长期更新 开一帖子长期记录Quartus II 的Warning解决办法 目录 Warning (18236): Warning (292013): Warning (18236): Number of processors has not been specified which may cause overloading on shared machines. Set the …...
2024/4/13 6:44:16 - Win10复制粘贴失效
今天遇到了这个问题,在网上找了好多教程都不行,结果去问了朋友,他说: 把有道词典关了就行了 于是我就关了,然后就OK了。 有些事情真的需要问别人,自己是很难搞定的。...
2024/4/13 6:44:46
最新文章
- Langchain实战:基于Chain实现Prompt的高级应用
Langchain实战 一. Langchain介绍二. 项目背景三. 代码实现3.1 导入必要的库并调用GPT大模型3.2 输出解析器(指定输出格式)3.3 定义Prompt模板3.4 构造LLMChain并推理3.5 解析推理结果3.6 异步调用 四. 参考文献 一. Langchain介绍 LangChain 是一个用于开发由语言模型驱动的应…...
2024/4/27 13:26:09 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Java深度优先搜索DFS(含面试大厂题和源码)
深度优先搜索(Depth-First Search,简称DFS)是一种用于遍历或搜索树或图的算法。DFS 通过沿着树的深度来遍历节点,尽可能深地搜索树的分支。当节点v的所在边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这个…...
2024/4/27 12:46:58 - 爬虫学习第一天
爬虫-1 爬虫学习第一天1、什么是爬虫2、爬虫的工作原理3、爬虫核心4、爬虫的合法性5、爬虫框架6、爬虫的挑战7、难点8、反爬手段8.1、Robots协议8.2、检查 User-Agent8.3、ip限制8.4、SESSION访问限制8.5、验证码8.6、数据动态加载8.7、数据加密-使用加密算法 9、用python学习爬…...
2024/4/23 6:25:49 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/26 18:09:39 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/26 20:12:18 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/27 4:00:35 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/25 18:39:22 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/25 18:39:22 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/26 21:56:58 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/27 9:01:45 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/26 16:00:35 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/25 18:39:16 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/26 22:01:59 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/25 2:10:52 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/25 18:39:00 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57