【java8】请问一个ArrayList使用stream的map后,会保证原有顺序吗?

如题

List users = xxxxxxx;

假设User里面有3个数据,“a”“b”“c”

我使用users.stream().map....................toList

后,请问顺序还是abc么

7个回答

                //顺序不变
        List collect = users.stream().map(String::toUpperCase).collect(Collectors.toList());

                //顺序会变
                List collect = users.parallelStream().map(String::toUpperCase).collect(Collectors.toList());

是和否的问题,还是建议你直接代码运行试下就确定了,这样有助于你的学习

对于有顺序的源数据,比如list,set,Stream操作之后仍然会按照顺序排(线性操作)。
如果是非固定顺序的数据源,则不保证其最后处理的顺序。
对于线性Streams,源的固定顺序对性能没有特别影响。
对于并行Streams,不强调顺序的话显然性能会更好。比如filter,distinct,groupingBy操作,非顺序操作的效率就更好,可参考博客
另外,如果数据本身是固定顺序的,但是开发者本身不在意是否按顺序处理,那么可以通过unordered()处理之后再操作,会提高某些有状态的并行操作和结束操作的效率。

顺序不变。可以运行此代码。
List users=Arrays.asList("x","b","c");
for(int i=0;i System.out.println(users.get(i));
}
List collect = users.stream().map(String::toUpperCase).collect(Collectors.toList());
for(int i=0;i<collect.size();i++){
System.out.println(collect.get(i));
}
结果为 x b c, X B C

ArrayList使用stream的map后,会保证原有顺序的,除非你添加了优先级或者插入数据

使用stream是顺序流 他是不会变化的除非你在后续操作中做了修改

使用users.stream()......顺序不会发生改变

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java8Stream流使用方式

![图片说明](https://img-ask.csdn.net/upload/201905/17/1558083974_301810.png) 问题如图 1:写上了数据结构,可直接写, 2:要用stream 流实现 ``` public void testTest(){ Map<String,String> objectObjectHashMap = new HashMap<>(); objectObjectHashMap.put("id","1"); objectObjectHashMap.put("contract_id","1"); objectObjectHashMap.put("repay_at","65"); objectObjectHashMap.put("plan_total_price","36"); Map<String,String> objectObjectHashMap1 = new HashMap<>(); objectObjectHashMap.put("id","6"); objectObjectHashMap.put("contract_id","1"); objectObjectHashMap.put("repay_at","98"); objectObjectHashMap.put("plan_total_price","54"); Map<String,String> objectObjectHashMap2 = new HashMap<>(); objectObjectHashMap.put("id","44"); objectObjectHashMap.put("contract_id","2"); objectObjectHashMap.put("repay_at","87"); objectObjectHashMap.put("plan_total_price","36"); Map<String,String> objectObjectHashMap3 = new HashMap<>(); objectObjectHashMap.put("id","8"); objectObjectHashMap.put("contract_id","2"); objectObjectHashMap.put("repay_at","35"); objectObjectHashMap.put("plan_total_price","21"); List<Map<String,String>> list = new ArrayList<>(); list.add(objectObjectHashMap); list.add(objectObjectHashMap1); list.add(objectObjectHashMap2); list.add(objectObjectHashMap3); } ```

如何使用Lambda表达式对Map进行分组?

有如下数据 我想对该数据进行分组(按camp阵营进行分组) 但是我不知道该怎么写,求大神指教 ``` package com.renguanyu.demo.lambda; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Data { public static List<Map<String,Object>> getSanGuoMaps(){ List<Map<String,Object>> maps = new ArrayList<>(); Map<String,Object> map1 = new HashMap<>(); map1.put("id", 1); map1.put("name", "刘备"); map1.put("height", 175.01); map1.put("camp", "蜀"); Map<String,Object> map2 = new HashMap<>(); map2.put("id", 2); map2.put("name", "关羽"); map2.put("height", 180.00); map2.put("camp", "蜀"); Map<String,Object> map3 = new HashMap<>(); map3.put("id", 3); map3.put("name", "张飞"); map3.put("height", 190.00); map3.put("camp", "蜀"); Map<String,Object> map4 = new HashMap<>(); map4.put("id", 4); map4.put("name", "吕布"); map4.put("height", 190.00); map4.put("camp", "其他"); maps.add(map1); maps.add(map2); maps.add(map3); maps.add(map4); return maps; } } ``` ``` package com.renguanyu.demo.lambda; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class Demo1 { public static void main(String[] args) { List<Map<String, Object>> sanGuoMaps = Data.getSanGuoMaps(); System.out.println(sanGuoMaps); // sanGuoMaps.stream().collect(Collectors.groupingBy(Map::get("name"))); } } ```

list转换成map错误:java.lang.String cannot be cast to j

我想把类似[{name=小明, age=18}, {name=小红, age=20}, {name=大熊, age=17}]这样从 数据库取出来的list转换成[小明,18,小红,20,大熊,17](String类型list。 项目中这段代码是这样实现的 ``` public List executeSQL(String sql){ log.debug(sql); List<String> aList = new ArrayList(); List jlist = jdbcTemplate.queryForList(sql); for(int i=0;i<jlist.size();i++){ System.out.println(jlist.get(i).getClass()); } Iterator ite = jlist.iterator(); while(ite.hasNext()){ Map map = (Map)ite.next(); for(Object o:map.keySet()){ if(map.get(o.toString())==null){ aList.add(""); }else{ aList.add(map.get(o.toString()).toString()); } } } return aList; } ``` 我自己写了简单的想实现下 ``` public class mapDemo { public static void main(String[] args) { List<String> a = new ArrayList(); List b = new ArrayList<>(); String c1 = new String("{name=小明, age=18}"); String c2 = new String("{name=小红, age=20}"); String c3 = new String("{name=大熊, age=17}"); b.add(c1); b.add(c2); b.add(c3); Iterator it =b.iterator(); while(it.hasNext()){ Map map = (Map)it.next(); for(Object o:map.keySet()){ if(map.get(o.toString())==null){ a.add(""); }else{ a.add(map.get(o.toString()).toString()); } } } } } ``` 但是提示错误:java.lang.String cannot be cast to java.util.Map 数据库取出来的list和我add进去的有什么不一样吗,我这段是哪里错了?

如何使用Java8Lambda表达式对两个List<Object>中的多个元素进行对比筛选

``` List<Student> list = new ArrayList<>(); List<Student> list2 = new ArrayList<>(); Student student1 = new Student(); student1.setAge("一"); student1.setSex(1); Student student2 = new Student(); student2.setAge("一"); student2.setSex(2); Student student3 = new Student(); student3.setAge("三"); student3.setSex(3); Student student4 = new Student(); student4.setAge("四"); student4.setSex(4); // List2 Student student5 = new Student(); student5.setAge("一"); student5.setSex(1); Student student6 = new Student(); student6.setAge("二"); student6.setSex(9); Student student7 = new Student(); student7.setAge("三"); student7.setSex(9); Student student8 = new Student(); student8.setAge("四"); student8.setSex(9); ``` 现在想要的结果是筛选出两个List中age,sex都一样的元素组成一个新List<Student> ``` Set<Student> s = list.stream() .map( user -> list2.stream() .filter(log -> user.getAge().equals(log.getAge())) .filter(log -> user.getSex() == log.getSex()) .findAny() .orElse(user) ) .collect(Collectors.toSet()); ``` 我自己试了下好像并没有卵用

map.get() 到的引用变量能不能直接修改?

``` public static void main(String[] args) { Map<String, List<String>> map = new HashMap<>(); map.put("str1", Arrays.asList("aa","bb")); System.out.println(map.get("str1")); map.get("str1").add("cccc"); // 1 System.out.println(map.get("str1")); List<String> list = new ArrayList<>(map.get("str1")); list.add("dddd"); // 2 map.put("str1",list); System.out.println(map.get("str1")); map.get("str1").add("cccc"); // 3 System.out.println(map.get("str1")); } ``` 目前这段代码执行到 1 会报错; 但是把1注释掉就能正常运行(1和3是一样的),不知道为什么先2再3 就没问题了 用的java8,是因为一开始的map里的value和后来更新过的有什么不一样???

java 统计集合中对象的不特定字段的平均值

![动态统计某字段](https://img-ask.csdn.net/upload/201810/30/1540894792_28871.png) ![图片说明](https://img-ask.csdn.net/upload/201810/30/1540895183_497849.png) ``` private RecordLevelModel getRecordLevelModel(Map.Entry<Integer, List<EsFitnessTestRecordDO>> entry, List<EsFitnessTestRecordDO> projectAndSexList) { RecordLevelModel bmiMaleModel = new RecordLevelModel().setGradeNumber(entry.getKey()); Integer bmiUrbanMaleTotal = projectAndSexList.size(); Map<String,Long> bmiMaleMap = projectAndSexList.stream().collect( Collectors.groupingBy(EsFitnessTestRecordDO::getBmiRating,Collectors.counting())); for(Map.Entry<String,Long> entry1 : bmiMaleMap.entrySet()) { LevelAndRegionModel levelAndRegionModel = new LevelAndRegionModel(); double rate = entry1.getValue()/bmiUrbanMaleTotal; levelAndRegionModel.setLevelName(entry1.getKey()).setRate(rate).setTotal(Integer.parseInt(entry1.getValue().toString())); bmiMaleModel.getLevelModelList().add(levelAndRegionModel); } String projectName = ""; Class<EsFitnessTestRecordDO> clz = EsFitnessTestRecordDO.class; try { String methodName = "get"+projectName; Method method = EsFitnessTestRecordDO.class.getMethod(methodName); double ave = projectAndSexList.stream().mapToDouble(method).average().average().getAsDouble(); double average = projectAndSexList.stream().mapToDouble(EsFitnessTestRecordDO::getBmi).average().getAsDouble(); }catch (NoSuchMethodException e){ } return bmiMaleModel; } ``` 写了动态指定单个字段的分组,但是 MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); 会报错找不到字段,我确定字段没写错 ``` public class CollectionsUtils<T> { private T t; public T getT() { return t; } public void setT(T t) { this.t = t; } public CollectionsUtils(T t) { this.t = t; } //多字段排序 public <T> Map<List<String>, List<T>> DynamicGroupListByFiled(List<T> data, String[] groupByFieldNames) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); List<MethodHandle> handles = Arrays.stream(groupByFieldNames) .map(field -> { try { return lookup.findGetter(this.getT().getClass(), field, String.class); } catch (Exception e) { throw new RuntimeException(e); } }).collect(Collectors.toList()); return data.stream().collect(Collectors.groupingBy( d -> handles.stream() .map(handle -> { try { return (String) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } }).collect(Collectors.toList()) )); } //按某字段分组后统计数量 public Map<String, Long> DynamicGroupListByFiled(List<T> data, String fieldName) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); try { MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); return data.stream().collect(Collectors.groupingBy( d -> { try { return (String) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } } ,Collectors.counting())); } catch (Throwable e) { throw new RuntimeException(); } } //算不定字段平均值 public Double getDynamicFieldAverage(List<T> data, String fieldName) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); try { MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); return data.stream().mapToDouble(d -> { try { return (Double) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } } ).average().getAsDouble(); } catch (Exception e) { throw new RuntimeException(e); } } } @Test public void testCollectionUtils() { List<EsFitnessTestRecordDO> list = new ArrayList<>(); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(90D)); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(92D)); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(94D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(80D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(82D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(84D)); list.add(new EsFitnessTestRecordDO().setBmiRating("合格").setBmiScore(70D)); list.add(new EsFitnessTestRecordDO().setBmiRating("合格").setBmiScore(76D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(50D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(40D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(30D)); CollectionsUtils<EsFitnessTestRecordDO> ct = new CollectionsUtils(EsFitnessTestRecordDO.class); //统计bmiRating字段 优秀、良好、合格、不合格的各自人数,bmiRating是传递的参数 Map<String, Long> map = ct.DynamicGroupListByFiled(list,"bmiRating"); //计算bmiScore字段的平均值,bmiScore是传递的动态参数 double bmiAverage = ct.getDynamicFieldAverage(list,"bmiScore"); } ``` ![类的字段](https://img-ask.csdn.net/upload/201810/31/1540949963_127506.png) 调试bug图 ![BUG](https://img-ask.csdn.net/upload/201810/31/1540947738_269708.png)

jdk8的foreach方法使用问题

foreach中如何改变外部的变量,如何退出foreach循环

java 如何对 list 对象降序排列

package test.tool.gui.dbtool.util; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test { public static void main(String[] args) { List<Student> list = new ArrayList<Student>(); //创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中 Student s1 = new Student(); s1.setAge(20); Student s2 = new Student(); s2.setAge(19); Student s3 = new Student(); s3.setAge(21); list.add(s1); list.add(s2); list.add(s3); System.out.println("排序前:"+list); Collections.sort(list, new Comparator<Student>(){ /* * int compare(Student o1, Student o2) 返回一个基本类型的整型, * 返回负数表示:o1 小于o2, * 返回0 表示:o1和o2相等, * 返回正数表示:o1大于o2。 */ public int compare(Student o1, Student o2) { //按照学生的年龄进行升序排列 if(o1.getAge() > o2.getAge()){ return 1; } if(o1.getAge() == o2.getAge()){ return 0; } return -1; } }); System.out.println("排序后:"+list); } } class Student{ private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return getAge()+""; } } 如何对上面代码按年龄降序排列。

安卓,AS里为什么这个map没有put方法,不应该啊

![图片说明](https://img-ask.csdn.net/upload/201909/03/1567478066_898657.png) 安卓,AS里为什么这个map没有put方法,不应该啊

list集合取相同数据求平均分

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("name", "语文"); map.put("score", 80); list.add(map); Map<String, Object> map2 = new HashMap<String, Object>(); map2.put("name", "数学"); map2.put("score", 76); list.add(map2); Map<String, Object> map3 = new HashMap<String, Object>(); map3.put("name", "语文"); map3.put("score", 90); list.add(map3); Map<String, Object> map4 = new HashMap<String, Object>(); map4.put("name", "数学"); map4.put("score", 80); list.add(map4); Map<String, Object> map5 = new HashMap<String, Object>(); map5.put("name", "英语"); map5.put("score", 89); list.add(map5); 需求是求相同科目的平均分,不同科目就不算平局分,打印出来,谢谢了

JAVA输出流中的数据怎么存到集合中

创建一个学生类 使用ArrayList赋值属性然后通过InputStream存到一个txt文档里,输出流的时候怎样才能吧数据还原成一个类存到集合里面遍历查找呢

关于Java的FTP文件下载功能,求大神指教(附代码)

最近在做一个FTP文件下载的功能,包括单个文件下载和打包文件下载,但是代码写出来以后经过各种调试测试,发现无论单个文件下载还是打包文件下载,都无法使用迅雷下载,只能使用浏览器进行下载,而且在下载的过程中不会显示进度条,但是文件下载下来的文件是很正常的。 ``` //单个文件下载 public void Ftpdownload(String reaName,String fileName,String remote,HttpServletResponse response,HttpServletRequest request) throws IOException { // 开启输出流弹出文件保存路径选择窗口 response.setContentType("application/octet-stream"); response.setContentType("application/OCTET-STREAM;charset=UTF-8"); //解决下载文件中文名称乱码的问题 String agent = request.getHeader("USER-AGENT"); if(agent != null && agent.toLowerCase().indexOf("firefox") > 0) { reaName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(reaName.getBytes("UTF-8")))) + "?="; } else { reaName = java.net.URLEncoder.encode(reaName, "UTF-8"); } response.setHeader("Content-Disposition", "attachment;filename=" +reaName); OutputStream out = response.getOutputStream(); // 转移到FTP服务器目录至指定的目录下 ftpClient.changeWorkingDirectory(new String(remote.getBytes(LOCAL_CHARSET), SERVER_CHARSET)); //下载FTP服务器指定文件 ftpClient.retrieveFile(new String(fileName.getBytes(LOCAL_CHARSET), SERVER_CHARSET), out); out.close(); } ``` ``` //打包下载 public void download(Map<String,String> map,String isbn,HttpServletResponse response){ // 开启输出流弹出文件保存路径选择窗口 response.setContentType("application/octet-stream"); response.setContentType("application/OCTET-STREAM;charset=UTF-8"); //解决下载文件中文名称乱码的问题 try { SimpleDateFormat simpleDateFormat; simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); Date date = new Date(); String folderName=isbn+"-"+simpleDateFormat.format(date); response.setHeader("Content-Disposition", "attachment;filename=" +URLEncoder.encode(folderName+".zip", "UTF-8")); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } //设置缓存大小 byte[] buffer = new byte[1024]; OutputStream out; try { out = response.getOutputStream(); //开启压缩流 ZipOutputStream zipout = new ZipOutputStream(out); int len; FTPFile[] listFiles=ftpClient.listFiles(); Set<String> set = map.keySet(); List<InputStream> list = new ArrayList<InputStream>(); for (String key : set) { // 转移到FTP服务器目录至指定的目录下 ftpClient.changeWorkingDirectory(new String(map.get(key) .getBytes(LOCAL_CHARSET), SERVER_CHARSET)); String string = new String(key.getBytes(LOCAL_CHARSET),SERVER_CHARSET); //从FTP服务器下载文件到文件流 InputStream retrieveFileStream = ftpClient .retrieveFileStream(string); //标记为压缩包中内的一个新文件 zipout.putNextEntry(new ZipEntry(key)); //写入输出流 while ((len = retrieveFileStream.read(buffer)) > 0) { zipout.write(buffer, 0, len); } //关闭下载流 retrieveFileStream.close(); //FTP内置方法,必须调用才能下载下一个文件流 ftpClient.completePendingCommand(); } //关闭压缩流 zipout.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } ```

java无法对多个excel打包下载?

java实现多个excel 打包下载,我先创建了一个临时文件夹,然后进行打包下载,最后删除这个临时文件夹, 但是没反应也不报错,求大神指教 ``` @RequestMapping(value = "downloadPreHomeWorkZIP") public void downloadLetterZIP(trainTraineeWorkModel query, HttpServletResponse response, HttpServletRequest request) throws IOException, SQLException { String serverPath =request.getSession().getServletContext().getRealPath("/")+"\\upload\\tempExcel"; List<File> srcfile=new ArrayList<File>(); //在服务器端创建文件夹 File file = new File(serverPath); if(!file.exists()){ file.mkdir(); } List<Map> employees = employeeService //查询学员上传的课前课后作业 .getMapTraineesBySessionId(1406940); if(employees.size()!=0){ for (Map map : employees) { BLOB blob = (BLOB) map.get("BEFORECLASS_WORK"); if(blob!=null&&blob.length()!=0){ String employeeCode=(String)map.get("EMPLOYEE_CODE"); response.setHeader("Content-Disposition", "attachment; filename=afterSessionWork"+ java.net.URLEncoder.encode( employeeCode + ".xls", "UTF-8")); response.setContentType("application/octet-stream; charset=utf-8"); SimpleDateFormat sfm = new SimpleDateFormat("yyyy-MM-dd"); String filename = employeeCode + "_" + sfm.format(new Date()); String encodedfileName = new String(filename.getBytes(), "UTF-8"); InputStream in = blob.getBinaryStream(); byte[] buf = new byte[1024]; int bytesIn = 0; FileOutputStream out = new FileOutputStream(serverPath+ employeeCode+".xls"); while ((bytesIn = in.read(buf, 0, 1024)) != -1) { out.write(buf, 0, bytesIn); } srcfile.add(new File(serverPath+"\\"+encodedfileName+".xls")); in.close(); out.close(); } } //将服务器上存放Excel的文件夹打成zip包 File zipfile = new File(serverPath+"PreWork"+".zip"); ZipUtils.zipFiles(srcfile, zipfile); // //下载 ZipUtils.downFile(response,serverPath, "PreWork"+".zip"); // return null; } //工具类 public class ZipUtils { /** * 将多个Excel打包成zip文件 * @param srcfile * @param zipfile */ public static void zipFiles(List<File> srcfile, File zipfile) { byte[] buf = new byte[1024]; try { // Create the ZIP file ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile)); // Compress the files for (int i = 0; i < srcfile.size(); i++) { File file = srcfile.get(i); FileInputStream in = new FileInputStream(file); // Add ZIP entry to output stream. out.putNextEntry(new ZipEntry(file.getName())); // Transfer bytes from the file to the ZIP file int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } // Complete the entry out.closeEntry(); in.close(); } // Complete the ZIP file out.close(); } catch (IOException e) { e.printStackTrace(); } } public static void downFile(HttpServletResponse response,String serverPath, String str) { try { String path = serverPath + str; File file = new File(path); if (file.exists()) { InputStream ins = new FileInputStream(path); BufferedInputStream bins = new BufferedInputStream(ins);// 放到缓冲流里面 OutputStream outs = response.getOutputStream();// 获取文件输出IO流 BufferedOutputStream bouts = new BufferedOutputStream(outs); response.setContentType("application/x-download");// 设置response内容的类型 response.setHeader( "Content-disposition", "attachment;filename=" + URLEncoder.encode(str, "UTF-8"));// 设置头部信息 int bytesRead = 0; byte[] buffer = new byte[8192]; //开始向网络传输文件流 while ((bytesRead = bins.read(buffer, 0, 8192)) != -1) { bouts.write(buffer, 0, bytesRead); } bouts.flush();// 这里一定要调用flush()方法 ins.close(); bins.close(); outs.close(); bouts.close(); } else { response.sendRedirect("../error.jsp"); } } catch (IOException e) { e.printStackTrace(); } } } ```

两个有交集的list,根据一个字段合并

list1=[{name:"1",No:001},{name:"2",No:002},{name:"3",No:003}] list2=[{name:"3",age:10},{name:"4",age:10},{name:"5",age:10}] 两个字段结构不同,想按照name来合并,缺省的属性用0来代替。请问有什么好的方法或思路合并?

java.lang.NullPointerException:尝试在空对象引用上调用虚方法

<div class="post-text" itemprop="text"> <p>I was already reading the data from my database to android. I copied the code and used it again in my other app it gave me this error. </p> <p><strong>LOGCAT:</strong> </p> <pre><code>07-08 08:52:24.422: E/Buffer Error(2636): Error converting result java.lang.NullPointerException: lock == null 07-08 08:52:24.422: E/JSON Parser(2636): Error parsing data org.json.JSONException: End of input at character 0 of 07-08 08:52:24.423: D/AndroidRuntime(2636): Shutting down VM 07-08 08:52:24.424: E/AndroidRuntime(2636): FATAL EXCEPTION: main 07-08 08:52:24.424: E/AndroidRuntime(2636): Process: com.example.purplerose, PID: 2636 07-08 08:52:24.424: E/AndroidRuntime(2636): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.purplerose/com.example.purplerose._Appetizer}: java.lang.NullPointerException: Attempt to invoke virtual method 'org.json.JSONArray org.json.JSONObject.getJSONArray(java.lang.String)' on a null object reference </code></pre> <p>PHP CODE data is already showing up</p> <pre><code>&lt;?PHP include_once("connection.php"); $sql = "SELECT MenuID, Name, Description2, Price FROM menu"; $result = mysqli_query($con,$sql); $json = array(); if(mysqli_num_rows($result)){ while($row=mysqli_fetch_assoc($result)){ $json['menu'][]=$row; } } mysqli_close($con); echo json_encode($json); ?&gt; </code></pre> <p>JSONParser</p> <pre><code>public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // constructor public JSONParser() { } public JSONObject getJSONFromUrl(final String url) { // Making HTTP request try { // Construct the client and the HTTP request. DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); // Execute the POST request and store the response locally. HttpResponse httpResponse = httpClient.execute(httpPost); // Extract data from the response. HttpEntity httpEntity = httpResponse.getEntity(); // Open an inputStream with the data content. is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { // Create a BufferedReader to parse through the inputStream. BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); // Declare a string builder to help with the parsing. StringBuilder sb = new StringBuilder(); // Declare a string to store the JSON object data in string form. String line = null; // Build the string until null. while ((line = reader.readLine()) != null) { sb.append(line + " "); } // Close the input stream. is.close(); // Convert the string builder data to an actual string. json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // Try to parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } // Return the JSON Object. return jObj; } // function get json from url // by making HTTP POST or GET mehtod public JSONObject makeHttpRequest(String url, String method, List&lt;NameValuePair&gt; params) { // Making HTTP request try { // check for request method if(method == "POST"){ // request method is POST // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); }else if(method == "GET"){ // request method is GET DefaultHttpClient httpClient = new DefaultHttpClient(); String paramString = URLEncodedUtils.format(params, "utf-8"); url += "?" + paramString; HttpGet httpGet = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + " "); } is.close(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // try parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } // return JSON String return jObj; }} </code></pre> <p>JAVA Code</p> <pre><code>ListView mListView = (ListView) findViewById(R.id.listView1); String url = "http://10.0.2.2/purple/readMenu.php"; try { JSONParser jParser = new JSONParser(); JSONObject table = jParser.getJSONFromUrl(url); JSONArray data = table.getJSONArray("menu"); //JSONArray data = new JSONArray(getJSONUrl(url)); final ArrayList&lt;HashMap&lt;String, String&gt;&gt; MyArrList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;(); HashMap&lt;String, String&gt; map; for(int i = 0; i &lt; data.length(); i++){ JSONObject c = data.getJSONObject(i); map = new HashMap&lt;String, String&gt;(); map.put("MenuID", c.getString("MenuID")); map.put("Name", c.getString("Name")); map.put("Description2", c.getString("Description2")); map.put("Price", c.getString("Price")); MyArrList.add(map); } SimpleAdapter sAdap; sAdap = new SimpleAdapter(_Appetizer.this, MyArrList, R.layout.menulist_arrangement, new String[] {"Name", "Description2", "Price", "MenuID"}, new int[] {R.id.lblName, R.id.lblDesc2, R.id.lblPrice, R.id.lblMenuID}); mListView.setAdapter(sAdap); final AlertDialog.Builder viewDetail = new AlertDialog.Builder(this); // OnClick Item mListView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView&lt;?&gt; myAdapter, View myView, int position, long mylng) { String _Name = MyArrList.get(position).get("Name") .toString(); String _Desc2 = MyArrList.get(position).get("Description2") .toString(); String _Price = MyArrList.get(position).get("Price") .toString(); String _MenuID = MyArrList.get(position).get("MenuID") .toString(); //String sMemberID = ((TextView) myView.findViewById(R.id.ColMemberID)).getText().toString(); // String sName = ((TextView) myView.findViewById(R.id.ColName)).getText().toString(); // String sTel = ((TextView) myView.findViewById(R.id.ColTel)).getText().toString(); viewDetail.setIcon(android.R.drawable.btn_star_big_on); viewDetail.setTitle(_Name); viewDetail.setMessage("Name : " + _Name + " " + "Description : " + _Desc2 + " " + "Price : " + _Price + " " + "ID: " + _MenuID); viewDetail.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); } }); viewDetail.show(); } }); } catch (JSONException e) { // TODO Auto-generated catch block Log.e("Log", "Failed" +e); e.printStackTrace(); } </code></pre> <p>Double check the JSONParser class. or my java code. i really cant tell where is the null pointer.</p> </div>

java 动态依据不特定字段进行分组和统计

写了动态指定单个字段的分组,但是 MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); 会报错找不到字段,我确定字段没写错 ``` public class CollectionsUtils<T> { private T t; public T getT() { return t; } public void setT(T t) { this.t = t; } public CollectionsUtils(T t) { this.t = t; } //多字段排序 public <T> Map<List<String>, List<T>> DynamicGroupListByFiled(List<T> data, String[] groupByFieldNames) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); List<MethodHandle> handles = Arrays.stream(groupByFieldNames) .map(field -> { try { return lookup.findGetter(this.getT().getClass(), field, String.class); } catch (Exception e) { throw new RuntimeException(e); } }).collect(Collectors.toList()); return data.stream().collect(Collectors.groupingBy( d -> handles.stream() .map(handle -> { try { return (String) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } }).collect(Collectors.toList()) )); } //按某字段分组后统计数量 public Map<String, Long> DynamicGroupListByFiled(List<T> data, String fieldName) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); try { MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); return data.stream().collect(Collectors.groupingBy( d -> { try { return (String) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } } ,Collectors.counting())); } catch (Throwable e) { throw new RuntimeException(); } } //算不定字段平均值 public Double getDynamicFieldAverage(List<T> data, String fieldName) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); try { MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); return data.stream().mapToDouble(d -> { try { return (Double) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } } ).average().getAsDouble(); } catch (Exception e) { throw new RuntimeException(e); } } } @Test public void testCollectionUtils() { List<EsFitnessTestRecordDO> list = new ArrayList<>(); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(90D)); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(92D)); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(94D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(80D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(82D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(84D)); list.add(new EsFitnessTestRecordDO().setBmiRating("合格").setBmiScore(70D)); list.add(new EsFitnessTestRecordDO().setBmiRating("合格").setBmiScore(76D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(50D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(40D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(30D)); CollectionsUtils<EsFitnessTestRecordDO> ct = new CollectionsUtils(EsFitnessTestRecordDO.class); //统计bmiRating字段 优秀、良好、合格、不合格的各自人数,bmiRating是传递的参数 Map<String, Long> map = ct.DynamicGroupListByFiled(list,"bmiRating"); //计算bmiScore字段的平均值,bmiScore是传递的动态参数 double bmiAverage = ct.getDynamicFieldAverage(list,"bmiScore"); } ``` ![类的字段](https://img-ask.csdn.net/upload/201810/31/1540949963_127506.png) 调试bug图 ![BUG](https://img-ask.csdn.net/upload/201810/31/1540947738_269708.png)

定义了两个集合,怎么判断他们是否有重复值啊

public class List1 { public static void main(String[] args) { //第一个集合 List<Test> list1=new ArrayList<Test>(); Test list1_1=new Test(); list1_1.setNumber(1); list1.add(list1_1); Test list1_2=new Test(); list1_2.setNumber(3); list1.add(list1_2); Test list1_3=new Test(); list1_3.setNumber(5); list1.add(list1_3); Test list1_4=new Test(); list1_4.setNumber(7); list1.add(list1_4); Test list1_5=new Test(); list1_5.setNumber(9); list1.add(list1_5); //第二个集合 List<Test> list2=new ArrayList<Test>(); Test list2_1=new Test(); list2_1.setNumber(1); list2.add(list2_1); Test list2_2=new Test(); list2_2.setNumber(2); list2.add(list2_2); Test list2_3=new Test(); list2_3.setNumber(3); list2.add(list2_3); Test list2_4=new Test(); list2_4.setNumber(4); list2.add(list2_4); Test list2_5=new Test(); list2_5.setNumber(5); list2.add(list2_5); for(int i=0;i<list1.size();i++){ Test x=list1.get(i); System.out.print(x.getNumber()+" "); } System.out.println(); for(int i=0;i<list2.size();i++){ Test y=list2.get(i); System.out.print(y.getNumber()+" "); } } }

请问BitmapFactory无法解码流问题

报错是: E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: android.graphics.Bitmap@737df77: open failed: ENOENT (No such file or directory) I/System.out: resolveUri failed on bad bitmap uri: android.graphics.Bitmap@737df77 代码片段 public void newThread(){ if(list != null){ @SuppressLint("HandlerLeak") final Handler handle = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { if (picByte != null) { List<Map<String, Object>> listems = new ArrayList<Map<String, Object>>(); for (int i = 0; i < list.size(); i++) { Bitmap bitmap = BitmapFactory.decodeByteArray(picbytes.get(i), 0, picbytes.get(i).length); Map<String, Object> listem = new HashMap<String, Object>(); listem.put("image", bitmap); listem.put("sname", aname[i]); listem.put("scity", acity[i]); listem.put("sgender", agender[i]); listem.put("sid", aid[i]); listems.add(listem); } SimpleAdapter simplead = new SimpleAdapter(getActivity(), listems, R.layout.pfadapter, new String[]{"image", "sname", "scity", "sgender"}, new int[]{R.id.userspic1, R.id.sname, R.id.scity, R.id.sgender}); simplead.setViewBinder(new SimpleAdapter.ViewBinder(){ public boolean setViewValue(View view,Object data,String textRepresentation){ if(view instanceof ImageView && data instanceof Drawable){ CircleImageView iv=(CircleImageView)view; iv.setImageDrawable((Drawable)data); return true; } else return false; } }); lt1.setAdapter(simplead); } lt1.setOnItemClickListener(new OnItemClickListener() { @SuppressWarnings("unchecked") @Override public void onItemClick (AdapterView < ? > parent, View view,int position, long id) { ListView listView = (ListView) parent; HashMap<String, String> map = (HashMap<String, String>) listView.getItemAtPosition(position); String userid = map.get("sid"); String username = map.get("sname"); if (FriendshipInfo.getInstance().isFriend(userid)){ ProfileActivity.navToProfile(getActivity(), userid); }else{ Intent person = new Intent(getActivity(),AddFriendActivity.class); person.putExtra("id",userid); person.putExtra("name",username); startActivity(person); } } }); } } }; final Runnable runnable = new Runnable() { @Override public void run() { try { int i; for(i=0; i<list.size(); i++){ URL urlpic = new URL(list.get(i)); HttpURLConnection conn = (HttpURLConnection)urlpic.openConnection(); conn.setRequestMethod("GET"); conn.setReadTimeout(10000); if (conn.getResponseCode() == 200) { InputStream fis = conn.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] bytes = new byte[1024]; int length = -1; while ((length = fis.read(bytes)) != -1) { bos.write(bytes, 0, length); } picByte = bos.toByteArray(); picbytes.add(picByte); bos.close(); fis.close(); } } Message message = new Message(); message.what = 1; handle.sendMessage(message); }catch (IOException e) { e.printStackTrace(); } } }; new Thread(runnable).start(); } }

LinkedHashMap排序LinkedHashMap排序

LinkedHashMap value为float值,如何实现排序

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐