关于java数组的问题,怎么在已经定义了的有顺序的数组中添加元素;

请问:现有一个有序的数组,现在想要将一个元素插入到该数组中去,还要保证该数组是有序的;
因为数组长度一旦确定就不能改变,但是我想知道,有没有一种方法可以增加数组的长度并且按照合法的顺序添加元素。length变为length+1;
![图片说明](https://img-ask.csdn.net/upload/201609/29/1475130773_864223.jpg)图片说明

6个回答

图片说明

不建议对数组进行添加和删除操作,效率很低。正常情况下没有这样搞的

sinat_36016725
Xgf-943 回复efficiency_shang: 好的,谢谢。就然如此那就不深究了
3 年多之前 回复
u013076997
efficiency_shang 回复Xgf-943: 数组应该一旦被创建长度是不能变的,可以用List,Set等取代数组进行相应的操作
3 年多之前 回复
sinat_36016725
Xgf-943 前面的利用折半查找找到该元素的应该插入的位置我都找到了,到那时我要怎么才能把这个元素插入在这个位置,并且将原来的位置上面的元素往后移动一位,length+1?
3 年多之前 回复

数组元素添加完成后“效果应该是:[11,22,33,44,56,78,99,100,102]”

sinat_36016725
Xgf-943 [11,22,33,44,56,58,78,99,100,102]
3 年多之前 回复

使用Linklist,也就是链表,直接插入就行;链表长度可以随意更改,适用于,插入删除操作多的情况(效率比数组高很多,不会有空间浪费),定长数组适用于查找多的情况,效率比链表高

sinat_36016725
Xgf-943 好吧,我只是在自学中,岳傲这个问题,我就问问有没有解决的必要,除了使用List的增删改查方法外,既然大家都不建议继续深究,那就算了,还是谢谢。
3 年多之前 回复

有序的数组 和List有什么区别呢

ShanYu1198124123
ShanYu1198124123 List按对象进入的顺序保存对象,不做排序或编辑操作;是有序的,这个有序指的就是存放的顺序和取出的顺序是一致的,并不是数据进行排序
3 年多之前 回复
ShanYu1198124123
ShanYu1198124123 List集合可以存储和操作数目不固定的一组数据。且只能存放引用类型的的数据,不能存放基本数据类型.
3 年多之前 回复
ShanYu1198124123
ShanYu1198124123 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型);
3 年多之前 回复

public class kk {

public static void main(String[] args) {
    int[] hu={11,22,33,44,55,66,77,88};
    int i;
    ArrayList<String> xinde= new ArrayList<String>();
    xinde=insert(hu,47);
    System.out.println("旧数组"+hu.length);
    System.out.println("新数组"+xinde.size());
    for(i=0;i<xinde.size();i++){
        System.out.print(xinde.get(i)+",");
    }
}

public static ArrayList<String> insert(int[] arr, int key){
    ArrayList<String> jiude = new ArrayList<String>();
    int i;
    int j;
    for (i = 0; arr[i] < key; i++) {
        jiude.add(String.valueOf(arr[i]));
    }
    jiude.add(String.valueOf(key));
    for (j = i; j < arr.length; j++) {
        jiude.add(String.valueOf(arr[j]));
    }
    return jiude;
}

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java treemap集合类,自定义比较器怎样实现逆字典顺序输出的?
代码是: import java.util.*; public class Example21 { // 创建TreeMap测试类 public static void main(String[] args) { TreeMap tm = new TreeMap(new MyComparator());// 传入一个自定义比较器 tm.put("1", "Jack"); // 向集合存入学生的学号和姓名 tm.put("2", "Rose"); tm.put("3", "Lucy"); Set keySet = tm.keySet(); // 获取键的集合 Iterator it = keySet.iterator(); // 获得迭代器对象 while (it.hasNext()) { Object key = it.next(); // 获得一个键 Object value = tm.get(key); // 获得键对应的值 System.out.println(key + ":" + value); } } } class MyComparator implements Comparator { // 自定义比较器 public int compare(Object obj1, Object obj2) {// 实现比较方法 String id1 = (String) obj1; // 将Object类型的参数强转为String类型 String id2 = (String) obj2; return id2.compareTo(id1); // 将比较之后的值返回 } } 输出结果是: 3:Lucy 2: Rose 1:Jack 当我把 return id2.compareTo(id1); 改成 return id1.compareTo(id2); 时 输出结果是这样的:1:Jack 2:Rose 3:Lucy 这是怎样实现的? 能不能把实现过程表示出来? 谢谢了,各位
用java学生成绩统计。求大神帮忙
功能:先用对话框提示输入5个同学的姓名和语数外成绩,然后提示输入数字1-5,实现下面相应的功能,在控制台显示统计结果。 (例如:输入数字1 ,则在控制台显示最高分和最低分同学的姓名和总分) 要求:建立一个学生类,有数据姓名和成绩数组,有构造方法,有计算最高分学生的方法等(具体有那些方法可根据程序功能自己设计),在主类中定义学生数组,调用学生类的方法完成对应的功能。 1) 最高分同学的姓名和总分 2) 按总分从高到低的顺序,按下面格式输出学生的姓名和总分 排名 姓名 总分 1 a 288 2 b 280 3 c 275 3) 平均分在60以下的学生姓名和人数 4) 给出提示,输入一个学生的姓名,查询这个学生的总分 5)退出程序
java自定义异常一个很奇怪的问题
这是我的一段代码 <br />class TestException8 extends Exception{}; <br /> <br />public class TestException7 { <br /> public void method() throws TestException8{ <br /> System.out.println("method()"); <br /> throw new TestException8(); <br /> } <br /> public static void main(String[] args) { <br /> TestException7 t=new TestException7(); <br /> try { <br /> t.method(); <br /> } catch (TestException8 e) { <br /> e.printStackTrace(); <br /> } <br /> } <br />} <br /> <br />输出的结果很奇怪,我反复执行,答应"method()"的顺序不同,为什么,难道不是按顺序执行吗?随机? <br />第一种情况: <br />method() <br />com.chenhuan.p12.TestException8 <br /> at com.chenhuan.p12.TestException7.method(TestException7.java:6) <br /> at com.chenhuan.p12.TestException7.main(TestException7.java:11) <br /> <br /> <br />第二种情况: <br />com.chenhuan.p12.TestException8 <br /> at com.chenhuan.p12.TestException7.method(TestException7.java:6) <br /> at com.chenhuan.p12.TestException7.main(TestException7.java:11) <br />method() <br /> <br /> <br /> <br /><br /><strong>问题补充</strong><br />调试了一下,正常情况下是第一种情况,难道eclipse有问题?
C语言数据结构顺序存储的线性表常用函数的参数传递中*P和P使用情况和一些顺序存储的线性表问题
刚学了C语言的数据结构,有一些问题不懂,或者说有一些认识不知道对不对,想知道真正的情况是怎么样的。 先看这几条语句: void union(List *La,List Lb) (1) { int La_len,Lb_len,i; ElemType e; La_len = ListLength(*La); (2) Lb_len = ListLength(Lb); (3) for(i=1;i<=Lb_len;i++) { GetElem(Lb,i,&e); if(!LocateElem(*La,e)) (4) ListInsert(La,++La_len,e); } } 再看函数原型,是我看的书上的:(L是线性表) 1. InitList(*L); 2. ClearList(*L); 3. ListInsert(*L,i,e); 4. ListDelete(*L,i,*e); 5. ListLength(L); 6. ListEmpty(L); 7. LocateElem(L,e); 8. GetElem(L,i,*e); 问题是: 1. 第一部分语句, union函数的两个参数List *La,List Lb,一个是*La,一个是Lb, 不知道为什么一个是用线性表的指针的地址 *L,一个是用 L 。 2. La_len = ListLength(*La); (2) Lb_len = ListLength(Lb); (3) !LocateElem(*La,e) (4) 和第7条原型LocateElem(L,e); (2)(3)两条语句,用的是同样的函数,一个却是指针地址,一个确实指针指向的值,对应第5条函数原型ListLength(L);是不是这个函数里面的参数既可以是*La也可以是Lb?区别是什么? (4)的语句第一个参数是*La,而原型第一个参数是L,不知道为什么一个有加*,一个没有加,有错吗,没错的话区别是什么? 3. 几个函数原型里面,前4条函数的参数是L,后4条函数参数是(*L),还有e也有这种情况,是为什么??搞不懂什么时候用加*,什么时候不用加,区别是什么 4. 顺序线性表的定义跟一个结构体差不多,里面有一个数组存储数据元素,搞不清楚结构体和线性表和数组的区别和联系 (老师教C的时候,没怎么听,后来学JAVA了C也忘记差不多了,学C的数据结构感觉熟悉又陌生,有很多不懂的地方,谢谢大家帮忙解答了)
c++ stl set 自定义类 equals 如何保证不重复
我在写作业时遇到一个问题,我自定义了一个类,然后用了一个set,set里放的是我自己写的类的指针。我希望这个set里的类指针能满足如下要求:首先满足类指针所指向类实例的某一类成员不与set中已有类指针所指向的实例的对应成员相同,其次类指针本身的内容不同。 我该如何实现?我所知道的自定义compare方法似乎是提供两个放进去的东西的先后顺序关系的比较,如何实现用自己定义的方法实现set内成员满足我所定义的不重复?然后我知道好像Java里可以通过重写equals函数,c++行吗?
求助Java算法,这两个算法问题有Java代码实现
1. 从N个元素集合里面随机抽取M个元素(M<N)。 C/C++: void randomChoose(int*data, intn, int *result, int m); Java: void randomChoose(int data[], int result[]); 说明: 1.Data是待抽取的元素集合,n是data的长度,result是抽取的结果,m是结果集的长度。 2.同一个元素不能被反复抽取。 3.每个元素被抽取到的概率必须相同。 4.不需要自己写随机函数,C版本中允许使用rand()函数,java版本中允许使用Random对象 5.算法效率尽可能高 6.必须要有代码注释和算法说明。 例如:data里面的数据是{3, 4, 9}。n = 3, m = 2。此时result的可能输出结果有{3, 4},{3, 9},{4, 9},{4,3},{9, 3},{9, 4},每种可能的输出概率相同。 2.交换链表的奇偶顺序 函数说明: swap函数交换链表第2i和第2i+1个元素(如果都有的话),并返回交换之后的链表。 示例: 交换前链表的顺序 交换后链表的顺序 1→2→3→4→5 ==> 2→1→4→3→5 1 ==> 1 (链表仅含一个元素) 1→2 ==> 2→1 ==> (链表为空) C/C++: 链表节点定义为: struct node { struct node *next; … }; struct node *swap(struct node *list); Java: 链表节点定义为: class Node { public Node next; … } Node swap(Node list) 注意点和要求如下: 0. swap函数返回新的链表指针 1. swap函数要求对节点的指针/引用进行操作(不得创建任何新的链表节点) 2. 不得使用任何库函数/API,如需使用类似功能, 请自行实现 3. 不得将链表转化为其他类型数据结构再进行交换,如数组等
java中,自定义类继承Compretor来排序,排序却出了问题,求指点
首先,我的待排序的类TieziAndImageClass中有一字段为String time,是时间来的,其格式为 yyyy-MM-dd HH:mm:ss 。要对这个类的多个实例进行排序,我就是依据这反应时间的字符串来排序的,时间旧的排前,时间新的排后,为此自定义了一个类继承了Compretor ``` public class TimeCompreter implements Comparator { public int compare(Object object1,Object object2) { TieziAndImageClass tiezi1=(TieziAndImageClass)object1; TieziAndImageClass tiezi2=(TieziAndImageClass)object2; String time1=tiezi1.tiezi.getTime(); //获取反应时间的字符串 String time2=tiezi2.tiezi.getTime(); int yearResult=-2; String year1=time1.substring(0, 3); String year2=time2.substring(0, 3); int intYear1=Integer.parseInt(year1); int intYear2=Integer.parseInt(year2); if(intYear1>intYear2) yearResult=1; else if (intYear1==intYear2) yearResult=0; else if(intYear1<intYear2) yearResult=-1; if(yearResult==1 || yearResult==-1) return yearResult; int monthResult=-2; String month1=time1.substring(5,6); String month2=time2.substring(5,6); int intMonth1=Integer.parseInt(month1); int intMonth2=Integer.parseInt(month2); if(intMonth1>intMonth2) monthResult=1; else if (intMonth1==intMonth2) monthResult=0; else if(intMonth1<intMonth2) monthResult=-1; if(monthResult==1 || monthResult==-1) return monthResult; int dayResult=-2; String day1=time1.substring(8,9); String day2=time2.substring(8,9); int intDay1=Integer.parseInt(day1); int intDay2=Integer.parseInt(day2); if(intDay1>intDay2) dayResult=1; else if (intDay1==intDay2) dayResult=0; else if(intDay1<intDay2) dayResult=-1; if(dayResult==1 || dayResult==-1) return dayResult; int hourResult=-2; String hour1=time1.substring(11,12); String hour2=time2.substring(11,12); int intHour1=Integer.parseInt(hour1); int intHour2=Integer.parseInt(hour2); if(intHour1>intHour2) hourResult=1; else if (intHour1==intHour2) hourResult=0; else if(intHour1<intHour2) hourResult=-1; if(hourResult==1 || hourResult==-1) return hourResult; int minuteResult=-2; String minute1=time1.substring(14,15); String minute2=time2.substring(14,15); int intMinute1=Integer.parseInt(minute1); int intMinute2=Integer.parseInt(minute2); if(intMinute1>intMinute2) minuteResult=1; else if (intMinute1==intMinute2) minuteResult=0; else if(intMinute1<intMinute2) minuteResult=-1; if(minuteResult==1 || minuteResult==-1) return minuteResult; int secondResult=-2; String second1=time1.substring(17,18); String second2=time2.substring(17,18); int intSecond1=Integer.parseInt(second1); int intSecond2=Integer.parseInt(second2); if(intSecond1>intSecond2) secondResult=1; else if (intSecond1==intSecond2) secondResult=0; else if(intSecond1<intSecond2) secondResult=-1; return secondResult; } } ``` 按如下方式来使用 ``` Collectios.sort(list对象,new TimeCompretor()); ``` 但是最后排序结果很乱,没能按预期的旧的排前,新的排后这样来排,实际中的是旧的有点排前也有点排到后面去了,总之排完之后的顺序混乱,求指点一下
请问,docker部署后如何修改spring boot 的应用配置文件?
  我是个java开发菜鸟,以前一直维护的是spring mvc+tomcat在linux的web项目,最近在学习spring boot +docker(docker-compose),试图改造我手上的Web项目,但遇到一个问题百思不得其解,还希望哪位大神伸手援助。   先说说我的需求,很简单,以前维护pring mvc+tomcat的时候,只是先在Linux部署tomcat、mysql等组件,然后将我的spring应用放至tomcat/webapps下就可以正常运行,因为部署环境不同,该应用经常需要根据现场实际情况,修改web的config等配置文件然后重启,如果应用报错还可以在指定目录下查看项目打印的各类log日志(log4j输出不同的日志)。虽然前期部署麻烦了一些,但有安装脚本什么的,维护起来也方便。  这段时间接触了spring boot +docker以后,也能够将应用通过docker(docker-compose)方式部署起来,但后续的问题怎么也搞不定,比如我想修改应用配置文件中的某一参数,然后重启docker容器就可以正常运行项目,但不知道如何修改application.xml。   我能想到的方法有三种:   1、通过volume将tomcat映射出来,docker-compose配置如下 ``` #docker-compose的版本 version: '3' #定义服务 services: #服务名称,可随意定义 gwqserive: build: #dockerfile的路径 context: gwqapp #dockerfile的名称 dockerfile: appDockerfile #相当于docker run -v的作用 volumes: - "./jar:/tmp" #容器名称 container_name: gwq-compose-app-container #该服务依赖的其他服务,该配置选项可修改启动顺序 depends_on: - mysqldbserver - redisServer links: - mysqldbserver - redisServer ``` appDockerfile: ``` FROM java:8-jre-alpine #维护者信息 MAINTAINER Gaowq VOLUME /tmp ADD SpringBootRedisDemo-0.0.1-SNAPSHOT.jar app.jar #为构建镜像设置监听端口,使容器在运行时监听 EXPOSE 8080 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 好吧,然后容器运行以后,前往/tmp或jar目录下,发现全是tomcat缓存类似的文件,没啥用,跟之前的webapps完全不是一回事  2、想docker exec进去看看,然后。。。一脸meng bi!完全不知道需要的文件在哪  3、我能想到的方式,就是修改好应用配置文件,重新打包jar生成新的镜像,但。。。未免有点太复杂了吧!而且也没有解决我获取不同各类log4j日志的问题。   因为项目最终打包完毕后,将交于专门技术人员安装与维护,故上述情况经常会遇到,由于本人技术太菜,还请各位大神不吝赐教!谢谢!
Java 梭哈 编译出错怎么解决
import java.util.*; public class ShowHand { //定义该游戏最多支持多少个玩家 private final int PLAY_NUM = 5; //定义扑克牌的所有花色和数值, //下面四个是特殊字符,会在控制台打印出方块, 草花 , 红心 , 黑桃 private String[] types = {"\4 " , "\5 " ,"\3 " , "\6 "}; private String[] values = {"2" , "3" , "4" , "5" , "6" , "7" , "8" , "9", "10" , "J" , "Q" , "K" , "A"}; //card是一局游戏中剩下的扑克牌 ** **_private List<String> cards = new LinkedList<String>();_**** //定义所有的玩家 private String[] players = new String[PLAY_NUM]; //所有玩家手上的扑克牌 ** private List<String>[] playersCards = new List[PLAY_NUM];** /** * 初始化扑克牌,放入52张扑克牌,并且使用shuffle方法将它们按随机顺序排列 */ public void initCards() { for (int i = 0 ; i < types.length ; i++ ) { for (int j = 0; j < values.length ; j++ ) { cards.add(types[i] + values[j]); } } //随机排列 Collections.shuffle(cards); } /** * 初始化玩家,为每个玩家分派用户名 */ public void initPlayer(String... names) { if (names.length > PLAY_NUM || names.length < 2) { //校验玩家数量,此处使用异常机制更合理 System.out.println("玩家数量不对"); return ; } else { //初始化玩家用户名 for (int i = 0; i < names.length ; i++ ) { players[i] = names[i]; } } } /** * 初始化玩家手上的扑克牌,开始游戏时每个玩家手上的扑克牌为空, * 程序使用一个长度为0的LinkedList来表示。 */ public void initPlayerCards() { for (int i = 0; i < players.length ; i++ ) { if (players[i] != null && !players[i].equals("")) { playersCards[i] = new LinkedList<String>(); } } } /** * 输出全部扑克牌,该方法没有实际作用,仅用作测试 */ public void showAllCards() { for (String card : cards ) { System.out.println(card); } } /** * 派扑克牌 * @param first 最先派给谁 */ public void deliverCard(String first) { //调用ArrayUtils工具类的search方法,查询出指定元素在数组中的索引 int firstPos = ArrayUitls.search(players , first); //依次给位于该指定玩家之后的每个玩家派扑克牌 for (int i = firstPos; i < PLAY_NUM ; i ++) { if (players[i] != null) { playersCards[i].add(cards.get(0)); cards.remove(0); } } //依次给位于该指定玩家之前的每个玩家派扑克牌 for (int i = 0; i < firstPos ; i ++) { if (players[i] != null) { playersCards[i].add(cards.get(0)); cards.remove(0); } } } /** * 输出玩家手上的扑克牌 * 实现该方法时,应该控制每个玩家看不到别人的第一张牌,但此处没有增加该功能 */ public void showPlayerCards() { for (int i = 0; i < PLAY_NUM ; i++ ) { //当该玩家不为空时 if (players[i] != null) { //输出玩家 System.out.print(players[i] + " : " ); //遍历输出玩家手上的扑克牌 for (String card : playersCards[i]) { System.out.print(card + "\t"); } } System.out.print("\n"); } } public static void main(String[] args) { ShowHand sh = new ShowHand(); System.out.println(Arrays.toString(sh.types)); sh.initPlayer("电脑玩家" , "孙悟空"); sh.initCards(); sh.initPlayerCards(); //下面测试所有扑克牌,没有实际作用 sh.showAllCards(); System.out.println("---------------"); //下面从"孙悟空"开始派牌 sh.deliverCard("孙悟空"); sh.showPlayerCards(); /* 这个地方需要增加处理: 1.牌面最大的玩家下注. 2.其他玩家是否跟注? 3.游戏是否只剩一个玩家?如果是,则他胜利了。 4.如果已经是最后一张扑克牌,则需要比较剩下玩家的牌面大小. */ //再次从"电脑玩家"开始派牌 sh.deliverCard("电脑玩家"); sh.showPlayerCards(); } } import java.util.*; /** * Description: * <br/>Copyright (C), 2005-2008, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author Yeeku.H.Lee kongyeeku@163.com * @version 1.0 */ public class ShowHand { //定义该游戏最多支持多少个玩家 private final int PLAY_NUM = 5; //定义扑克牌的所有花色和数值, //下面四个是特殊字符,会在控制台打印出方块, 草花 , 红心 , 黑桃 private String[] types = {"\4 " , "\5 " ,"\3 " , "\6 "}; private String[] values = {"2" , "3" , "4" , "5" , "6" , "7" , "8" , "9", "10" , "J" , "Q" , "K" , "A"}; //card是一局游戏中剩下的扑克牌 private List<String> cards = new LinkedList<String>(); //定义所有的玩家 private String[] players = new String[PLAY_NUM]; //所有玩家手上的扑克牌 private List<String>[] playersCards = new List[PLAY_NUM]; /** * 初始化扑克牌,放入52张扑克牌,并且使用shuffle方法将它们按随机顺序排列 */ public void initCards() { for (int i = 0 ; i < types.length ; i++ ) { for (int j = 0; j < values.length ; j++ ) { cards.add(types[i] + values[j]); } } //随机排列 Collections.shuffle(cards); } /** * 初始化玩家,为每个玩家分派用户名 */ public void initPlayer(String... names) { if (names.length > PLAY_NUM || names.length < 2) { //校验玩家数量,此处使用异常机制更合理 System.out.println("玩家数量不对"); return ; } else { //初始化玩家用户名 for (int i = 0; i < names.length ; i++ ) { players[i] = names[i]; } } } /** * 初始化玩家手上的扑克牌,开始游戏时每个玩家手上的扑克牌为空, * 程序使用一个长度为0的LinkedList来表示。 */ public void initPlayerCards() { for (int i = 0; i < players.length ; i++ ) { if (players[i] != null && !players[i].equals("")) { playersCards[i] = new LinkedList<String>(); } } } /** * 输出全部扑克牌,该方法没有实际作用,仅用作测试 */ public void showAllCards() { for (String card : cards ) { System.out.println(card); } } /** * 派扑克牌 * @param first 最先派给谁 */ public void deliverCard(String first) { //调用ArrayUtils工具类的search方法,查询出指定元素在数组中的索引 int firstPos = ArrayUitls.search(players , first); //依次给位于该指定玩家之后的每个玩家派扑克牌 for (int i = firstPos; i < PLAY_NUM ; i ++) { if (players[i] != null) { playersCards[i].add(cards.get(0)); cards.remove(0); } } //依次给位于该指定玩家之前的每个玩家派扑克牌 for (int i = 0; i < firstPos ; i ++) { if (players[i] != null) { playersCards[i].add(cards.get(0)); cards.remove(0); } } } /** * 输出玩家手上的扑克牌 * 实现该方法时,应该控制每个玩家看不到别人的第一张牌,但此处没有增加该功能 */ public void showPlayerCards() { for (int i = 0; i < PLAY_NUM ; i++ ) { //当该玩家不为空时 if (players[i] != null) { //输出玩家 System.out.print(players[i] + " : " ); //遍历输出玩家手上的扑克牌 for (String card : playersCards[i]) { System.out.print(card + "\t"); } } System.out.print("\n"); } } public static void main(String[] args) { ShowHand sh = new ShowHand(); System.out.println(Arrays.toString(sh.types)); sh.initPlayer("电脑玩家" , "孙悟空"); sh.initCards(); sh.initPlayerCards(); //下面测试所有扑克牌,没有实际作用 sh.showAllCards(); System.out.println("---------------"); //下面从"孙悟空"开始派牌 sh.deliverCard("孙悟空"); sh.showPlayerCards(); /* 这个地方需要增加处理: 1.牌面最大的玩家下注. 2.其他玩家是否跟注? 3.游戏是否只剩一个玩家?如果是,则他胜利了。 4.如果已经是最后一张扑克牌,则需要比较剩下玩家的牌面大小. */ //再次从"电脑玩家"开始派牌 sh.deliverCard("电脑玩家"); sh.showPlayerCards(); } } Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 问题: F:\>javac ShowHand.java ShowHand.java:22: <identifier> expected private List<String> cards = new LinkedList<String>(); ^ ShowHand.java:26: <identifier> expected private List<String>[] playersCards = new List[PLAY_NUM]; ^ ShowHand.java:45: <identifier> expected public void initPlayer(String... names) ^ ShowHand.java:161: <identifier> expected } ^ 4 errors
Spring 怎么获取自定义注解标注的方法
在我自己的项目中,我自定义一个注解 ``` @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited public @interface ExcelSheet { /** * 表格类别 * @return */ String value(); /** * 创建的顺序(越大越往后执行) * @return */ int index(); } ``` 用来标注一些方法 例如: ``` @ExcelSheet(value = "excel", index = 1) public void firstCallImpl() { //一些执行的代码 } ``` 我现在的需求: 如果有多个方法被这个注解标注了那么,我能通过这个注解获取这个方法吗? 感谢大佬们的回答
哪位大佬能帮我把这段c程序改成Java谢谢。
#include <stdlib.h> #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OVERFLOW -1 #define OK 1 #define ERROR 0 typedef int ElemType; typedef int Status; //顺序表存储结构的定义 typedef struct { ElemType *elem; int length; int listsize; }sqlist; //顺序表的初始化 Status InitList_sq(sqlist *L) { L->elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if (!L->elem) exit(OVERFLOW); L->length = 0; L->listsize = LIST_INIT_SIZE; return OK; } //顺序表的插入 Status ListInsert_sq(sqlist *L, int i, int e) { ElemType *newbase, *p, *q; if (i < 1 || i > L->length+1) { return ERROR; } if (L->length >= L->listsize) { newbase = (ElemType*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType)); if (!newbase) exit(OVERFLOW); L->elem = newbase; L->listsize = L->listsize+LISTINCREMENT; } q = &(L->elem[i-1]); for(p = &(L->elem[L->length-1]) ; p >= q ; --p) { *(p+1) = *p; } *q = e; ++L->length; return OK; } //顺序表的删除 Status ListDelete_sq(sqlist *L, int i, ElemType *e) { ElemType *p, *q; if ( i < 1 || i > L->length) { return ERROR; } p = &(L->elem[i-1]); *e = *p; q = L->elem + L->length-1; for(++p; p<= q; ++p) { *(p-1) = *p; } --L->length; return OK; } //顺序表的归并 void MergeList_sq(sqlist *La, sqlist *Lb, sqlist *Lc) { ElemType *pa ,*pb,*pc,*pa_last,*pb_last; pa = La->elem; pb = Lb->elem; Lc->listsize = Lc->length = La->length + Lb->length; pc = Lc->elem = (ElemType* )malloc(Lc->listsize*sizeof(ElemType)); if(!Lc->elem) { exit(OVERFLOW); } pa_last = La->elem + La->length - 1; pb_last = Lb->elem + Lb->length - 1; while(pa <= pa_last && pb <= pb_last) { if(*pa <= *pb) *pc++ = *pb++; else *pc++ = *pb++; } while(pa <= pa_last) *pc++ = *pa++; while(pb <= pb_last) *pc++ = *pb++; } int main() { int i; int n = 5; ElemType e; sqlist La,Lb,Lc; if(InitList_sq(&La)) { printf("Init is ok\n"); printf("Length:%d\n",La.length); printf("listsize:%d\n",La.listsize); } else { printf("error!"); } //顺序表输入初始值 printf("Please input the value of sq:\n"); for (i = 1; i <= n; i++) { scanf("%d",&e); if (ListInsert_sq(&La, i, e) != OK) { break; } } for(i = 1; i <= La.length; i++) { printf("e[%d]=%d\n",i-1, La.elem[i-1]); } printf("Length:%d\n\n",La.length); ///插入 printf("Please input the place of insert:\n"); scanf("%d",&i); printf("Please input the value of insert:\n"); scanf("%d",&e); if(ListInsert_sq(&La,i,e) == OK) { for (i = 1; i <= La.length; i++) { printf("e[%d]=%d\n",i-1, La.elem[i-1]); printf("Length:%d\n\n",La.length); } } //删除 printf("Please input the place of delet:\n"); scanf("%d",&i); if(ListDelete_sq(&La, i, &e) == OK) { printf("The delete elem is:%d\n",e); } for (i = 1; i < La.length; i++) { printf("e[%d]=%d\n",i-1, La.elem[i-1]); printf("Length:%d\n\n",La.length); } //顺序表的归并 printf("Please input the value of sq2:\n"); InitList_sq(&Lb); InitList_sq(&Lc); for (i = 1; i <= n; i++) { scanf("%d",&e); if (ListInsert_sq(&Lb, i, e) != OK) { break; } } MergeList_sq(&La, &Lb, &Lc); for(i = 1; i <= Lc.length; i++) { printf("e[%d]=%d\n",i-1, Lc.elem[i-1]); } return 0; }
求此java基础编程题的解法
有一个长度为 n(n=100)的数列,该数列定义为从 2 开始的递增有序偶数 ({2,4,6,...,200}),现在要求你按照顺序每 m 个数求出一个平均值,如果最后不足 m 个, 则以实际数量求平均值。编程输出该平均值序列。 要求: m 为大于等于 3 的整数
求助一个自己写程序中的关于TreeSet同时去重和按加入顺序存储的bug。
昨天在写一个题目其中一块的任务是:将一些字符串去重,并且按给你时候的顺序输出出来,我没有想到用LinkedHashSet,第一想到的是使用TreeSet,故构造一个带comparator的treeset,让俩东西相等时候输出0,表示重复,那么treeset应该会不添加这个新元素,其余情况输出1表示直接添加到末尾,不做交换。然鹅实际情况与我想象的不一样,重复元素出现在特定位置时候无法去除(这一部分我通过debug 自己定义的compartatoro1,o2进行了对比已经证实comparator书写正确,是没有进行全遍历而造成的无法识别重复)。为了简单复现这个问题,我书写了加入简单integer类型的treeset,代码如下 ``` public class Tree { public static void main(String[] args) { TreeSet<Integer> treeSet = new TreeSet<>(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { // TODO Auto-generated method stub if(o1.equals(o2)) { return 0; } return 1; } }); treeSet.add(1); treeSet.add(2); treeSet.add(3); treeSet.add(1); treeSet.add(4); treeSet.add(1); treeSet.add(5); treeSet.add(7); treeSet.add(1); treeSet.add(6); treeSet.add(7); treeSet.add(1); for(int i : treeSet) { System.out.println(i); } } } ``` 这个代码也许你以为会输出1,2,3,4,5,7,6 但是实际情况是 1 2 3 1 4 5 7 6 ![图片说明](https://img-ask.csdn.net/upload/201904/04/1554354786_525204.png) 根据debug结果可以发现在加入第二个1时候(也就是加入这个1之前是1,2,3),这时候我认为加入1之后o1一直作为1,去和剩余3个元素作对比,如果重复就不会添加,然鹅实际情况再一次不同,o1一直作为1,也就是新添加的元素,只与2,3做了对比(也就是o2元素只遍历了2,3这两个)就结束了,程序发现并没有重复,因为根本就没看开头位置的东西是1,当然认为无重复,就把1又加了进去。 这个同理可以验证到字符串上面,并且更多的试验表明在总长超过6之后下标为2的元素也不会被o2遍历到。 小弟长时间自己思考,百度源码结论都应该是冒泡逐个遍历,但是并没能解决,还请各位老师指点一二。非常感谢!
安卓新手想问下执行顺序的问题
这是Activity代码: ``` private ListView listView; private List<User.UserMess> list=new ArrayList<User.UserMess>(); public GetDataFromInternet getData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getData=new GetDataFromInternet(GlobalContants.USER_URL); getData.getData(GlobalContants.USER_URL); list=getData.getUserlist(); listView= (ListView) findViewById(R.id.list_test); if(list!=null){ System.out.println(list.size()); listView.setAdapter(new AdapterList(this,list)); } else { System.out.println("error"); } } ``` 定义的获取网络数据的类: ``` public class GetDataFromInternet { private String murl; User user; public ArrayList<User.UserMess> userlist=new ArrayList< User.UserMess>(); public GetDataFromInternet(String url){ this.murl=url; } public void getData(String url) { HttpUtils uitls=new HttpUtils(); uitls.send(HttpMethod.GET, url, new RequestCallBack<String>() { public void onSuccess(ResponseInfo responseInfo){ String result= (String) responseInfo.result; if(result!=null){ System.out.println("GetDateFromInternet:从网络获取数据"); parseDataTest(result); } } public void onFailure(com.lidroid.xutils.exception.HttpException error, String msg) { System.out.println("获取数据失败"); } }); } public void parseDataTest(String result) { Gson gson=new Gson(); user=gson.fromJson(result,User.class); if(user!=null){ this.userlist=user.data; System.out.println("GetDateFromIntent解析成功"); } } public ArrayList<User.UserMess> getUserlist() { return userlist; } ``` 我的问题是在Activity里初始化时,先执行了 ``` System.out.println(list.size()); ``` 这句测试代码,之后再完成了数据解析,导致我没获取到想拿的数据,最后执行结果控制台打印顺序为 I/System.out: 0 I/System.out: GetDateFromInternet:从网络获取数据 I/System.out: GetDateFromIntent解析成功
Java 小白求编写一道算法题
约翰和他的朋友索尼娅打一场战舰游戏。游戏在N行的正方形地图上进行,编号从1到N.每行包含N个单元格,每列标有连续的英文大写字母(A,B,C等)。每个单元通过由其行编号及其列编号组成的串来标识:例如,“9C” 表示第9行中的第三单元,“15D”表示第15行中的第四单元。 如下图所示,船只由最大面积为4个单元格的矩形定义,X落在船上时表示船被击中,如果一个船每个部位被击中,则该船被沉没。 ![图片说明](https://img-ask.csdn.net/upload/201701/21/1485011184_257885.png) 目标是计算沉没的船只的数量和被击中但未沉没的船只的数量。 例如,下图显示了一个大小为N = 4的地图,两个蓝色船只和五个用字母“x”标记的命中; ![图片说明](https://img-ask.csdn.net/upload/201701/21/1485011215_124224.png) 在这个例子中,一艘船已经沉没,另一艘已经被击中但没有沉没。在下一张图片中,沉船被显示为灰色,被击中但尚未沉没的船舶显示为红色: 船的位置被给出为字符串S,其包含分别描述每艘船的左上角和右下角单元的位置对。船舶的描述用逗号分隔。命中的位置为字符串T,包含描述被击中的地图单元的位置:对于上述示例中的地图,S =“1B 2C,2D 4D”和T =“2B 2D 3D 4D 4A”。 S中的船舶和T中的命中可以以任何顺序出现。 写一个函数: class Solution {public String solution(int N,String S,String T); ) 假定地图N的大小和分别描述船只命中位置的两个字符串S,T返回具有两个数字的字符串:沉没船舶的计数和已被击中但未沉没的船舶的数量,用逗号分隔。 例如,假设N = 4,S =“1B 2C,2D 4D”和T =“2B 2D 3D 4D 4A”,您的函数应返回“1,1”,如上所述。
请问这个题执行顺序是什么
》》》》》》问题1 package java_study; /** * 请说出下列代码的输出结果 */ public class A { private static A a = new A(); private C c = new C(); static { System.out.println("3"); } public A() { System.out.println("4"); } public static void main(String[] args) { System.out.println("Hello"); } } //定义一个父类B class B{ B(){ System.out.println("B的构造方法"); } } //定义一个子类C 继承 B class C extends B{ static { System.out.println("1"); } public C(){ super(); System.out.println("2"); } } 》》》》》》》》问题2 如果该父类引用所调用的方法参数列表未定义,就调用该父类的父类中查找,如果还没找到就强制向上类型转换参数列表中的参数类型,具体优先级高到低依次如下: this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。 能给我解释一下这方面的问题吗??
求此java基础编程题的解法要注释
有一个长度为 n(n=100)的数列,该数列定义为从 2 开始的递增有序偶数 ({2,4,6,...,200}),现在要求你按照顺序每 m 个数求出一个平均值,如果最后不足 m 个, 则以实际数量求平均值。编程输出该平均值序列。 要求: m 为大于等于 3 的整数
C语言中顺序线性表的合并
结构体类型变量作为函数参数只能作为指针传递吗?为什么我写一个函数参数是结构体,下面引用时报错 typedef struct { char name[10]; char sex; long num; }ElemType;//自定义元素类型。 typedef struct{ ElemType *elem;//存储空间基址。 int length;//当前长度。 int listsize;//当前分配的存储容量(以sizeof(ElemType)为单位)。 }SqList;//定义顺序线性表类型 void MergeList_Sq(SqList La,SqList Lb,SqList *Lc){ ElemType *pa,*pb,*pc; pa=La->elem;pb=Lb->elem; }
做了一个小时的面试题(没有过 希望大家帮忙答下 虽然很幼稚 毕竟每个人都是这么过来的吗 感激了!)
XX软件工程师笔试试题 注:1、请参考人员将答案写在答题纸上,勿将答案写在此卷上。 2、请参考人员将编号与姓名填写在答题纸上。 1、 以下数据结构中不属于线性数据结构的是()。 A、队列 B、线性表 C、二叉树 D、栈 我的答案:C 2、 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()。 A、 可行性分析 B、需求分析 C、详细设计 D、程序编码 我的答案:B 3、 结构化程序设计主要强调的是()。 A、 程序的规模 B、程序的易读性 C、程序的执行效率 D、程序的可移植性 我的答案:C 4、 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段()。 A、 概要设计 B、详细设计 C、可行性分析 D、需求分析 我的答案:B 5、 下列关于栈的叙述中正确的是()。 A、 在栈中只能插入数据 B、在栈中只能删除数据 B、 栈是先进先出的线性表 D、栈是先进后出的线性表 我的答案:D 6、 下面不属于软件设计原则的是()。 A、 抽象 B、模块化 C、自底向上 D、信息隐蔽 我的答案:C 7、 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。 A、 N+1 B、N C、(N+1)/2 D、N/2 我的答案:C 8、 视图设计一般有3种设计次序,下列不属于视图设计的是()。 A、 自顶向下 B、由外向内 C、由内向外 D、自底向上 我的答案:C 9、下列有关数据库的描述,正确的是()。 A、数据库是一个DBF文件 B、数据库是一个关系 C、数据库是一个结构化的数据集合 D、数据库是一组文件 我的答案:C 10、下列说法中,不属于数据模型所描述的内容的是()。 A、数据结构 B、数据操作 C、数据查询 D、数据约束 我的答案:A 11、若按功能划分,软件测试的方法通常分为白盒测试方法和(黑盒测试方法)。 12、数据库系统的三级模式分别为(级联)模式、内部级模式与外部级模式。 13、在最坏情况下,冒泡排序的时间复杂度为(N+1/2)。 14、在面向对象方法中,信息隐蔽是通过对象的(封装)性来实现的。 15、关系模型的数据操纵既是建立在关系上的数据操纵,一般有(插入)、增加、删除、和修改四种操作。 16、TIME()的返回值的数据类型是(String)类型。 17、编写SQL语句 1)、创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话 我的答案: create table student( studentCardNo number(2) primary key, name char(10), age number(2), sex char(2) check(sex in (‘男’,’女’)), address varchar2(100), tel number(2) ) 2)、修改学生表的结构,添加一列信息,学历 我的答案: alter table student add(xueli varchar2(20)); 3)、修改学生表的结构,删除一列信息,家庭住址 我的答案: alter table student drop column address; 4)、向学生表添加如下信息: 学号 姓名 年龄 性别 联系电话 学历 1 A 22 男 123456 小学 2 B 21 男 119 中学 3 C 23 男 110 高中 4 D 18 女 114 大学 我的答案: insert into student values(‘&1’,’&2’,’&3’); 一次一次添加 5)修改学生表的数据,将电话号码以11开头的学员的学历改为“大专” 我的答案: update student set xueli=”大专” where tel like 11%; 6)删除学生表的数据,姓名以C开头,性别为‘男’的记录删除 我的答案: delete student where name like C% or sex=”男”; 7)查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号显示出来 我的答案: select name,studentCardNo from student where age<22 and xueli=”大专”; 8)查询学生表的数据,查询所有信息,列出前25%的记录 我的答案: select top*0.25 from student; 9)查询出所有学生的姓名,性别,年龄降序排列 我的答案: select name,sex,age from student where age desc; 10)按照性别分组查询所有的平均年龄 我的答案: select avg(age) from student group by sex; 18、什么是存储过程?为什么存储过程要比单纯的SQL语句执行起来要快? 我的答案: 存储过程算是一种优化查询需要比单存SQL语句执行的要快 19、两张关联表,删除主表中已经在副表中没有的信息 我的答案 delete from fubiao a where a.fid not in(select id from zhubiao) 20、程序题: 用1、2、2、3、4、5这六个数字,用java或你熟悉的语言,打印出所有不同的排列,如:512234、412345等,要求:“4”不能再第三位,“3”与“5”不能相连。并将这些数据按从小到大输出。 我的答案 我的写的不好 没贴下 笔试的时候没写全 21、String 和 StringBuffer的区别 我的答案 String定长 StringBuffer 变长 22、&和&&的区别 我的答案 &短路与 &&逻辑与 网上答案: & 是位运算符,表示按位与运算, && 是逻辑运算符,表示逻辑与(and)。 23、final,finally,finalize的区别 我的答案 Final静变量关键字,finally异常关键字,finalize 网上答案 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法, 可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 24、数组有没有length()这个方法?String有没有length()这个方法? 我的答案: 数组没有length()这个方法,有length的属性。 String有length()这个方法。 25、是否可以继承String类? 我的答案: 不可以 解释的很乱 26、说出数据连接池的工作机制是什么? 我的答案: 反正解释的很乱我感觉 27、垃圾回收的优点和原理。并考虑2种回收机制。 我的答案: 动态回收 解释的很乱 网上答案: Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解, 它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念, 只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。 垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有 使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。 回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。 28、你所知道的集合类都有哪些?区别?主要方法? 我的答案: Arraylist 非线性的、Vertor线性的 29、JSP的内置对象及方法。 我的答案: Page,exception,out,page content,application,request,reponse,session,config 30、页面间对象传递的方法。 我的答案: 那几个方法都写错了 31、你知道Request对象的主要方法有哪些? 32、J2EE是技术还是平台还是框架? 我的答案: J2EE是技术也是平台 网上答案: J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。 J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。 33、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种(例如GBK编码类型)编码的字符串? Request encording(“GBK”) 34、j2ee常用的设计模式?说明工厂模式。 Gof23种设计模式 工厂模式:Factory 网上答案: Java中的23种设计模式: Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式), Prototype(原始模型模式),Singleton(单例模式), Facade(门面模式), Adapter(适配器模式), Bridge(桥梁模式), Composite(合成模式), Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式), Command(命令模式), Interpreter(解释器模式), Visitor(访问者模式), Iterator(迭代子模式), Mediator(调停者模式), Memento(备忘录模式), Observer(观察者模式), State(状态模式), Strategy(策略模式), Template Method(模板方法模式), Chain Of Responsibleity(责任链模式) 工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例, 通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。 首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。 然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。 当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。 35、JSP四种会话跟踪技术 我的答案: Application cookie session 36、排序都有哪几种方法?请举例 冒泡 选择 快序 二分查找 网上答案: 排序的方法有:插入排序(直接插入排序、希尔排序), 交换排序(冒泡排序、快速排序), 选择排序(直接选择排序、堆排序), 归并排序,分配排序(箱排序、基数排序) 快速排序的伪代码。 //使用快速排序方法对a[ 0 :n- 1 ]排序 从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该元素为支点 把余下的元素分割为两段left 和r i g h t,使得l e f t中的元素都小于等于支点,而right 中的元素都大于等于支点 递归地使用快速排序方法对left 进行排序 递归地使用快速排序方法对right 进行排序 所得结果为l e f t + m i d d l e + r i g h t 37、关于模块间的设计原则? 规范要一样 38、项目过程一般是怎样的?你参加过几个项目开发?参加过的项目流程是怎样的?自己负责与人合作工作内容及自我评价? 从需求调研——设计开发——实施 参加过网站的实施 模板的制作 39、tomcat自动关闭常见原因? 我的答案: 现在没遇到过 40、如何设置TOMCAT内存和连接数? 我的答案: Tomcat群集 41、你如何理解Tomcat是什么? 我的答案: Tomcat是JSP Servlet 容器恰当的说 42、静态变量和实例变量的区别? 我的答案: 静态变量域用final修饰,每次都被调用 实例变量则不会 43、IE、FF下面CSS的解释区别 我的答案: 自己编的 44、web前端技术你了解哪些技术? 我的答案: JAVAScript,CSS,DIV,Ajax,Ajax框架,DWR,dojo,jguery 45、什么是报表?什么是报表控件,作用是什么?你了解哪些报表工具? 我的答案: 解释的很乱 46、你了解的那些统计图表类型? 我的答案: 自己编的 47、Flex与数据库连接的三种方式? 我的答案: 自己编的 ------------------------------------------------------- 我答错的、 错在哪里? 没答上的帮忙解答下? 感激了 !
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队译者 | 凯隐编辑 | Jane出品 | AI科技大本营(ID:rgznai100)本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知说话者数秒的音频来合成其讲话音频,即网
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
【管理系统课程设计】美少女手把手教你后台管理
【后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 一、这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,
4G EPS 第四代移动通信系统
目录 文章目录目录4G EPSEPS 的架构EPS 的参考模型E-UTRANUEeNodeBEPCMME(移动性控制处理单元)S-GW(E-RAB 无线访问承载接入点)P-GW(PDN 接入点)HSS(用户认证中心)PCRF(计费规则与策略)SPR(用户档案)OCS(在线计费)OFCS(离线计费)接口类型Uu 接口(空中接口,UE 和 AN 之间)S1 接口(AN 和 CN 之间)S1-U 接口和
相关热词 c# 二进制截断字符串 c#实现窗体设计器 c#检测是否为微信 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片
立即提问