关于Java中ArrayList的remove方法

请问为什么下面代码显示[1,3],而不是[2,3]
import java.util.ArrayList;
public class Z {
public static void main(String[] args){
ArrayList a=new ArrayList<>();
a.add(1);
a.add(2);
a.add(3);
a.remove(1);
System.out.println(a);
}
}
不好意思,不好意思,大家。
我之前编辑错了标题,想问ArrayList的remove方法有2个重载的:remove(o:Object):boolean和 remove(index:int ):E,想说这里为什么a.remove(1)不是调用的remove(o:Object)方法呢(其中int 类型的1自动转换为包装类Integer)?

14个回答

a.remove(1) 参数是int值 就用remove(index:int )。如果参数是一个对象就使用remove(o:Object),int 类型的1不需要转换为Integer。

weixin_36927767
sqmds 回复Jordan裔: 我懂了,谢谢你
接近 3 年之前 回复
weixin_37471989
Carpenterz 回复weixin_36927767: 是的,你理解的是对的
接近 3 年之前 回复
qq_27836205
Jordan裔 回复weixin_36927767: 不要转换为包装类啊 你干嘛纠结int转换为包装类 不会自动转换为包装类 方法参数就是int,不需要转换为包装类 下标越界才会报错 望采纳谢谢
接近 3 年之前 回复
weixin_36927767
sqmds 所以是包装类的自动类型转换是只有在当前类型(int)不适用的情形下,编译器才会去尝试转换成包装类(Integer),如果转换以后还不适用当前情形,就报错吗?
接近 3 年之前 回复

a.remove(1)移除的是下标为1的数,也就是第二个,
首先你要明白申请出来的数组的长度 如果你申请长度为n的数组,那么他的角标是从 0到(n-1)总共是n个

角标是从0开始的,你a.remove(1) 是移除了第二个,而第二个是2,所以输出就是[1,3]

list的索引起始从0开始,移除索引1,其实是移除了第二个元素了

应为ArrayList的索引和数组一样,从0开始

a.remove(1);删除索引1的数,自然结果是1,3

图片说明

所以,你a.remove(1);删除的是

 a.add(2);
 ArrayList a = new ArrayList();
 a.add("1");     //添加String类型的就可以删除了
 a.add("2");
 a.add("3");

 a.remove("1");

 System.out.println(a);

输出 2、3

a.remove(1)它会先认为你传的就是索引,按照索引能找到数据,就会执行删除.

int是JAVA缺省的8中基本数据类型之一.不是类的对象.

共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于Java的ArrayList数据插入,删除等操作
import java.util.*; public class TestArrayList { public static void main(String []args) { ArrayList al=new ArrayList(); System.out.println("数组列表对象al的大小:"+al.size()); al.add("何"); al.add("叶"); al.add("是"); al.add("蠢"); al.add("货"); System.out.println("数组列表对象al赋值后的大小:"+al.size()); System.out.println("数组列表对象al赋值后的内容:"+al); al.add(2,"不"); al.add(6,"我"); al.add(7,"不"); al.add(8,"信"); System.out.println("数组列表对象al添加元素后的大小:"+al.size()); System.out.println("数组列表对象al添加元素后的内容:"+al); al.remove(2); al.remove("我"); al.remove("不"); al.remove(8); System.out.println("数组列表对象al删除元素后的大小:"+al.size()); System.out.println("数组对象元素al删除元素后的内容:"+al); } } 在用控制台编译时,显示说使用了未经检查或不安全的操作,详细信息请使用Xlnt:unchecked重新编译。是什么意思? ``` ```
用ArrayList做一个具体实现类ArrayListStack。
import java.util.ArrayList; public class ArrayListStack<T> extends ArrayList<T> implements Stack<T> { ArrayList<T> arrayList =new ArrayList<>() ; @Override public void push(T obj) { arrayList.add(obj); } @Override public T get() { return arrayList.get(arrayList.size()-1); } @Override public T pop() { return arrayList.remove(arrayList.size()-1); } }
ArrayList的越界错误
[code="java"] Map<Integer, List<ByteBuffer>> readCache = ServiceCache.getReadcache(); Set<Integer> sets = readCache.keySet(); for (Integer siteNum : sets) { List<ByteBuffer> buffers = readCache.get(siteNum); if (buffers.size() > 0) { ByteBuffer buffer = buffers.get(0); HeartBeatPackage hb = ServerDataParser.getHreatBeat(buffer); buffers.remove(0); } [/code] 大致代码如上,从map中取出一个ArrayList,在使用之前我判断buffer.size() >0 了。为什么还会报异常 Exception in thread "Thread-13" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.remove(ArrayList.java:387) at com.hongdian.rtu.process.DisData.run(DisData.java:38) at java.lang.Thread.run(Thread.java:662)
ArrayList的ConcurrentModificationException
package list; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListDemo2 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("hello"); list.add("world"); list.add("java"); list.add("world"); list.add("java"); list.add("world"); list.add("world"); list.add("world"); list.add("world"); list.add("java"); list.add("world"); Iterator it = list.iterator(); for (int i = 0; i < list.size() - 1; i++) { for (int j = i + 1; j < list.size(); j++) { if (list.get(i).equals(list.get(j))) { list.remove(j); j--; } } } while (it.hasNext()) { System.out.println((String)it.next()); } } } 运行时报错:Exception in thread "main" java.util.ConcurrentModificationException,请问怎么解决/
ArrayList集合索引越界异常
在做斗地主发牌案例时 我先定义了54张牌,存储到一个集合里 ``` ArrayList<String>Pai=new ArrayList<>(); ArrayList<String>HuaSe=new ArrayList<>(); ArrayList<String>DaXiao=new ArrayList<>(); public ArrayList<String> maiPai(){ HuaSe.add("♥"); HuaSe.add("♠"); HuaSe.add("♦"); HuaSe.add("♣"); DaXiao.add("2"); DaXiao.add("3"); DaXiao.add("4"); DaXiao.add("5"); DaXiao.add("6"); DaXiao.add("7"); DaXiao.add("8"); DaXiao.add("9"); DaXiao.add("10"); DaXiao.add("J"); DaXiao.add("Q"); DaXiao.add("K"); DaXiao.add("A"); for (int i = 0; i < 4; i++) { for (int k = 0; k < 13; k++) { Pai.add(HuaSe.get(i)+DaXiao.get(k)); } } Pai.add("小王"); Pai.add("大王"); return Pai; } ``` 然后写了洗牌和发牌的代码 每个人一共发十七张 最后留三张底牌用叫地主的代码实现 ``` public void xiPai(ArrayList<String> list){ Collections.shuffle(list); } public ArrayList<String> faPai(ArrayList<String> A){ ArrayList<String> P =new ArrayList<>(); for (int i1 = 0; i1 < 17; i1++) { P.add(A.get(i1)); A.remove(i1); } return P; } public ArrayList<String> jiaoDiZhu(ArrayList<String>A){ ArrayList<String>Q=new ArrayList<>(); for (int i = 0; i < 3; i++) { Q.add(A.get(i)); A.remove(i); } return Q; } ``` 上面的代码 我都写在一个Poker类里 并在主程序中new了一个DuChang; 然后程序运行 定义了三个ArrayList进行接收扑克; ``` public static void main(String[] args) { Poker DuChang = new Poker(); ArrayList<String> lbs = new ArrayList<>(); ArrayList<String> zsy = new ArrayList<>(); ArrayList<String> lzq = new ArrayList<>(); ArrayList<String> XiYang = DuChang.maiPai(); DuChang.xiPai(XiYang); lbs = DuChang.faPai(XiYang); System.out.println(lbs); lzq = DuChang.faPai(XiYang); System.out.println(lzq); zsy=DuChang.faPai(XiYang); System.out.println(zsy); ``` 然后告诉我在最后一个人发牌的时候索引越界异常 ``` Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 10 out of bounds for length 10 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:372) at java.base/java.util.ArrayList.get(ArrayList.java:458) at cn.cm.DouDiZhu.Poker.faPai(Poker.java:46) at cn.cm.DouDiZhu.YouXi.main(YouXi.java:24) ``` 可是最后一个人发牌的时候还有20张牌在Pai的集合里啊 我只发17张,怎么会越界异常呢 而且在给前两个人发牌的时候为什么没有出现越界异常呢 后来我吧发17 张牌改成发13张 异常消失 想了两个小时 是在想不出来为什么了 求大神解惑
Java代码ArrayList删除其中值的问题,请看下面的代码有问题么?
//删除集合中的偶数数据 List<Integer> arr = new ArrayList(); for(int i = 0; i < 20; i++){ arr.add(i); } for(int i = 0; i <arr.size() ; i++){ if(arr.get(i)%2==0){ arr.remove(i); } } for(int i = 0; i < arr.size(); i++){ System.out.print(arr.get(i)+" "); } 以上的代码是否有问题?是不是出了越界的异常?应该改成这样么? List<Integer> arr = new ArrayList(); for(int i = 0; i < 20; i++){ arr.add(i); } for(int i = 0; i <arr.size() ; i++){ if(arr.get(i)%2==0){ arr.remove(i); i--; //加上这一句是否就没问题了? } } for(int i = 0; i < arr.size(); i++){ System.out.print(arr.get(i)+" "); }
从通用的arraylist中删除项目元素
我有一个通用的arraylist对象,在这里我想要删除一些元素。问题是当我用for循环迭代列表时,却不能做一个remove()' s的简单序列,因为元素在每次移除后都会发生变化。怎么在通用的arraylist中删除项目元素?
关于JAVA泛型方法的小问题
import java.util.ArrayList; public class GenericStack<E> { ArrayList<E> list = new ArrayList<>(); public int getSize(){ return list.size(); } public E peek(){ return list.get(list.size() - 1); } public void push(E e){ list.add(e); } public E pop(){ E e = list.get(list.size() - 1); list.remove(getSize() - 1); return e; } public boolean isEmpty(){ return list.isEmpty(); } } 为什么像push方法不是一个泛型方法而void前面不要加上<E>呢?到底什么才 是泛型方法啊?
Java:如何向方法中传递list,而不改变list的属性?
``` public AST term(ArrayList<String> ctx) { if (this.lexer.skip(Token.Type.LAMBDA)) { String id = this.lexer.token(Token.Type.LCID); this.lexer.match(Token.Type.DOT); ctx.add(0,id); AST term = this.term(ctx); //搜索term Identifier newid = new Identifier(id,ctx.indexOf(id)); ctx.remove(ctx.lastIndexOf(id)); return new Abstraction(newid, term); } else { return this.application(ctx); } } ``` 我想用递归的方法实现某些功能,但是不想让方法修改传进来的list的属性 也就是说,增加元素只是在这个方法之中起作用,在其他方法中无效,请问怎么做到呢? 那个remove是我后来写上去的,但是有些情况下有bug,因为lastIndexOf不一定正好能搜索到本方法中添加的元素。 谢谢大佬们!
ArrayList中删除重复元素
<求助>为什么不能删除重复元素? 而且equals重写不了? ``` import java.util.ArrayList; import java.util.List; public class Work1 { public static void main(String[] args) { List<String> str=new ArrayList<>(); str.add("张三"); str.add("李四"); str.add("王五"); str.add("张三"); str.add("aaa"); str.add("aaa"); str.add("bbb"); for(int i=0;i<str.size()-1;i++) { for(int j=str.size()-1;j<i;j--) { if (str.get(j).equals(str.get(i))) { str.remove(j); } } } for (String string : str) { System.out.println(string); } } } ``` ![图片说明](https://img-ask.csdn.net/upload/201711/16/1510845916_753811.png) ![图片说明](https://img-ask.csdn.net/upload/201711/16/1510846125_867580.png)
JAVA小白问题:测试Iterable接口的Iterator迭代器方法时遇到的疑问
![图片说明](https://img-ask.csdn.net/upload/201512/24/1450887396_135178.jpg) 创建个Arraylist集合,放几个数据,然后用迭代器循环遍历,同时想做个判断,如果等于指定的数值的数据出现了,就删除它,继续迭代别的元素,单独用remove删除方法没问题,但把它和next方法合起来用,就报错了,求解,谢谢!
ArrayList参数类型的匹配问题
import java.util.ArrayList; public class SimpleDotCom { private ArrayList<String> locationCells; public void setLocationCells(ArrayList<String> loc) { locationCells = loc; } public String checkYourself(String userinput) { int index = locationCells.indexOf(userinput); String result = "miss"; if(index >= 0){ locationCells.remove(index); if(locationCells.isEmpty()) { result = "kill"; }else{ result = "hit"; } } System.out.println(result); return result; } } public class SimpleDotComGame { public static void main(String[] args) { int numOfGuesses = 0; GameHelper helper = new GameHelper(); SimpleDotCom theDotCom = new SimpleDotCom(); int randomNum = (int) (Math.random() * 5); int[] locations = {randomNum, randomNum + 1, randomNum + 2}; theDotCom.setLocationCells(locations); boolean isAlive = true; while(isAlive == true) { String guess = helper.getUserInput("enter a number"); String result = theDotCom.checkYourself(guess); numOfGuesses++; if(result.equals("kill")) { isAlive = false; System.out.println("You took " + numOfGuesses + " guesses"); } } } } 报错显示为:Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method setLocationCells(ArrayList<String>) in the type SimpleDotCom is not applicable for the arguments (int[]) at SimpleDotComGame.main(SimpleDotComGame.java:12) 求大佬解答
一道Java算法题--求子集
求一个集合的所有子集,网上的方法没有注释看不懂,请看得动代码的高手帮忙注释一下!谢过! public class Solution { public ArrayList<ArrayList<Integer>> subsets(int[] num) { ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>(); if(num == null || num.length == 0) { return result; } ArrayList<Integer> list = new ArrayList<Integer>(); Arrays.sort(num); subsetsHelper(result, list, num, 0); return result; } private void subsetsHelper(ArrayList<ArrayList<Integer>> result, ArrayList<Integer> list, int[] num, int pos) { result.add(new ArrayList<Integer>(list)); for (int i = pos; i < num.length; i++) { list.add(num[i]); subsetsHelper(result, list, num, i + 1); list.remove(list.size() - 1); } } }
关于java中Iterable和Iterator接口的问题
java中foreach为什么设计成通过Iterable访问容器,而不直接通过Iterator访问? 这样产生特定Iterable接口,满足foreach,就需要实现两层匿名内部类,Iterable和Iterator,为什么foreach不设计成通过Iterator访问容器? 不知道多设计一层Iterable是为了什么目的。请指教,谢谢。 ``` class ReversibleArrayList<T> extends ArrayList<T> { public ReversibleArrayList(Collection<T> c) { super(c); } public Iterable<T> reversed() { return new Iterable<T>() { public Iterator<T> iterator() { return new Iterator<T>() { int current = size() - 1; public boolean hasNext() { return current > -1; } public T next() { return get(current--); } public void remove() { throw new UnsupportedOperationException(); } }; } }; } } ``` 通过两层匿名内部类,才得到迭代器。
java初学者求教:关于线程安全问题
List<String> list = new ArrayList<String>(); list = Collections.synchronizedList(list); 这时list是线程安全的,那么当我用增强for循环遍历list, 并且使用list的remove方法时,是不是就不安全了? 另外,如果list集合中存放的是一些带有图片的对象,比如dog public void paintTest(Graphisc g){ for(dog d:list){ g.drawImage(d.image,0,0,null); } } 这样也报异常,list是线程安全的啊 我就纳闷了 我也没有调用list的remove方法啊 不知道我有没有说明白 求前辈指教
关于java中测试类的编写:编写DotComBust的测试类
import java.util.*; public class DotComBust { private GameHelperr helper = new GameHelperr(); private ArrayList<DotCom> dotComsList = new ArrayList<DotCom>(); private int numOfGuesses = 0; private void setUpGame() { DotCom one = new DotCom(); one.setName("Pets.com"); DotCom two = new DotCom(); two.setName("eToys.com"); DotCom three = new DotCom(); three.setName("Go2.com"); dotComsList.add(one); dotComsList.add(two); dotComsList.add(three); System.out.println("YOUR goal is to sink three dot com!"); System.out.println("pets.com, eToys.com, Go2.com"); System.out.println("Try to sink them all in the fewest number of guesses:"); for (DotCom dotComToset : dotComsList) { ArrayList<String> newLocation = helper.placeDotCom(3); dotComToset.setLocationCells(newLocation); } } private void startPlaying() { while (!dotComsList.isEmpty()) { String userGuess = helper.getUserInput("Enter a guess"); checkUserGuess(userGuess); } finishGame(); } private void checkUserGuess(String userGuess){ numOfGuesses++; String result = "miss"; for(DotCom dotComToTest : dotComList){ result = dotComToTest.checkYourself(userGuess); if(result.equals("hit")){ break; } if(result.equals("kill")){ dotComList.remove(dotComToTest); break; } } System.out.println(result); } private void finishGame(){ System.out.println("ALL Dot Coms are dead!Your stock is now worthless."); if(numOfGuesses<=18) { System.out.println("It only took you" + numOfGuesses + "guesses"); System.out.println("You got out before your options sank"); } else { System.out.println("took you long enoguh"+numOfGuesses+"guesses"); System.out.println("Fish are dancing with your optioons"); } } public static void main(String [] args){ DotComBust game = new DotComBust(); game.setUpGame(); game.startPlaying(); } }
JAVA的jsoup删除元素结点的问题
是个奇怪的问题,revision是个arraylist数组<Element>类型,然后我在这个循环语句中: for (int k=i+1; k<=j; k++){ //revision.get(k).remove(); //System.out.println(revision.get(k)); } 如果是System.out.println(revision.get(k));的话,是能够得到我想要的每个Element元素结点的所有信息。 然而如果执行revision.get(k).remove();的话 就会在这一行报这样的错: Exception in thread "main" java.lang.IllegalArgumentException: Object must not be null 不是很明白是怎么回事,我处理另一个相同结构的xml文件都是没有问题的。
java中的递归求几个数字的排列组合
public class Test5 { public static void main(String[] args) { List<Integer> s=new ArrayList<Integer>(); List<Integer> rs=new ArrayList<Integer>(); for(int i=1;i<=4;i++) s.add(i); pl(s,rs); } public static void pl(List<Integer> s,List<Integer> rs){ if(s.size()==1) { rs.add(s.get(0)); System.out.println(rs.toString()); rs.remove(rs.size()-1); }else{ for(int i=0;i<s.size();i++){ rs.add(s.get(i)); List<Integer> tmp=new ArrayList<Integer>(); for(Integer a:s) tmp.add(a); tmp.remove(i); pl(tmp,rs); rs.remove(rs.size()-1); } } } } ``` 求大神问一下这段递归是什么意思?,新人表示看不懂 ```
ArrayList集合中的问题
package com.StuInfo; import java.util.*; public class Test { static ArrayList<Students> list=new ArrayList<Students>(); static Scanner input=new Scanner(System.in); public static void main(String[] args) { manageLogin(); } // 系统菜单 public static void manageLogin() { System.out.println("学员信息管理信统"); System.out.println("============"); System.out.println("1.录入学员信息"); System.out.println("2.根据学号查询学员信息"); System.out.println("3.修改学员信息"); System.out.println("4.根据学号删除学员信息"); System.out.println("5.统计学员平均考试成绩"); System.out.println("6.退出系统"); System.out.println("请输入菜单项:"); int num=input.nextInt(); switch(num){ case 1: addStu();break; case 2:checkById();break; case 3:update(); break; case 4:delete(); break; case 5: avg();break; case 6:exit(); break; } } //录入学员信息 public static void addStu(){ String answer=""; do{ answer="y"; Students stu=new Students(); System.out.print("请输入学生的学号: "); String stuid=input.next(); System.out.println("请输入学生的姓名:"); String stuname=input.next(); System.out.println("请输入学生的年龄:"); int age=input.nextInt(); System.out.println("请输入学生的成绩"); int score=input.nextInt(); if(list.isEmpty()){ stu.setId(stuid); stu.setName(stuname); stu.setAge(age); stu.setScore(score); list.add(stu); System.out.println("录入成功!"); manageLogin(); }else if(getById(stuid)==null){ stu.setId(stuid); stu.setName(stuname); stu.setAge(age); stu.setScore(score); list.add(stu); System.out.println("录入成功!"); manageLogin(); }else{ System.out.println("此学生已经存在!"); manageLogin(); } System.out.println("你是否要继续选择操作?y/n"); answer=input.next(); }while(answer.equals("y")); } //根据学号查询学员信息 public static void checkById(){ Students stu=new Students(); System.out.print("请输入您要查询学生的学号:"); String stuid=input.next(); Students s=getById(stuid); if(list.isEmpty()){ System.out.println("该学生不存在"); manageLogin(); }else if(s!=null){ Students ww=getById(stuid); System.out.println("该学员信息为:\n"); System.out.println("学号:"+ww.getAge()); System.out.println("姓名:"+ww.getName()); System.out.println("年龄:"+ww.getAge()); System.out.println("成绩:"+ww.getScore()); manageLogin(); } } //修改学员信息 public static void update(){ System.out.print("请输入您要修改学生的学号:"); int stuid=input.nextInt(); Students s=getById(stuid); //此行中getById方法报错,怎么回事? if(list.isEmpty()){ System.out.println("无学生信息!"); }else if(s!=null){ System.out.println("改后姓名:"); String name=input.next(); System.out.println("改后年龄:"); int age=input.nextInt(); System.out.println("改后成绩:"); int score=input.nextInt(); s.setName(name); s.setAge(age); s.setScore(score); System.out.println("修改成功!"); manageLogin(); }else{ System.out.println("该学生不存在!"); manageLogin(); } } //根据学号删除学员信息 public static void delete() { System.out.println("请输入所要删除的学号:"); String stuid=input.next(); Students s=getById(stuid); if(list.isEmpty()){ System.out.println("尚未存入信息!"); manageLogin(); }else if(s!=null){ list.remove(s); System.out.println("删除成功"); manageLogin(); }else{ System.out.println("该学生不存在!"); manageLogin(); } } //统计学员平均考试成绩 public static void avg(){ System.out.println("平均成绩为:"); int num=list.size(); int sun=0; if(list.isEmpty()){ System.out.println("未录入学生的信息!"); }else{ for(Students s:list){ //此行s:list 什么意思? sun+=s.getScore(); } System.out.println(sun/num); manageLogin(); } } //退出系统 public static void exit(){ System.out.println("你确定要退出系统吗?"+"y/n"); String answer=input.next(); if(answer.equalsIgnoreCase("y")){ System.exit(0); }else{ manageLogin(); } } public static Students getById(String id){ for(Students s:list){ if(s.getId().equals(id)){ return s; } } return null; } }
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
进程通信方式总结与盘点
​ 进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 ​ 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为: 效率低:一次只可操作少量的...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
听说了吗?阿里双11作战室竟1根网线都没有
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年使用商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部使用阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障...
在阿里,40岁的奋斗姿势
在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神赋 “翩若惊鸿,婉若游龙。荣曜秋菊,华茂春松。髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。” 爱洛神,爱阿里云 2018年,阿里云网络产品部门启动洛神2.0升...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
入职阿里5年,他如何破解“技术债”?
简介: 作者 | 都铎 作为一名技术人,你常常会听到这样的话: “先快速上线” “没时间改” “再缓一缓吧” “以后再解决” “先用临时方案处理” …… 当你埋下的坑越来越多,不知道哪天哪位同学就会踩上一颗雷。特别赞同“人最大的恐惧就是未知,当技术债可说不可见的时候,才是最让人不想解决的时候。” 作为一个程序员,我们反对复制粘贴,但是我们经常会见到相似的代码,相同的二方包,甚至整个代码...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
深度学习入门笔记(十八):卷积神经网络(一)
欢迎关注WX公众号:【程序员管小亮】 专栏——深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
你也能看懂的:蒙特卡罗方法
蒙特卡罗方法,也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法 蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问