ArrayList> resultsList = new ArrayList>();
ArrayList path=new ArrayList();

ArrayList path=new ArrayList();

7个回答

ArrayList resultsList = new ArrayList();
ArrayList path=new ArrayList();
System.out.println(((ArrayList)resultsList.get(0)).get(0));

``````class Solution {

List<List<Integer>> list = new ArrayList<List<Integer>>();
boolean[] used;
public List<List<Integer>> permute(int[] nums) {
if(nums == null || nums.length == 0){
return list;
}
used = new boolean[nums.length];
ArrayList<Integer> p = new ArrayList<Integer>();
generatePermutation(nums,0,p);
return list;
}
//p中保存有index个元素的全排列。这个方法的目的是向这个排列的末尾添加第index+1个元素，使p成为有index+1个元素的全排列
public void generatePermutation(int[] nums,int index,ArrayList<Integer> p){
if(index == nums.length ){
ArrayList<Integer> tem = new ArrayList<>();
return;
}
for(int i = 0 ; i < nums.length ; i++){
if(!used[i]){
used[i] = true;
generatePermutation(nums,index+1,p);
p.remove(p.size()-1);
used[i] = false;
}
}
return;
}
}
``````

``````        if(index == nums.length ){
ArrayList<Integer> tem = new ArrayList<>();
return;
}
``````

``````        if(index == nums.length ){
return;
}
``````

``````        ArrayList<Integer> list = new ArrayList<>();
List<List<Integer>>  res = new ArrayList<>();
System.out.println(res);
System.out.println(res+"发现两个元素竟然一样");
``````
DW1202 谢谢，我刷题时也遇到了，
10 个月之前 回复

2 年多之前 回复

Integer 对象在函数之间的引用传递起不到全局的作用
``` //实现排序二叉树的第k个节点的查找 TreeNode target = KthNode(p,2); public static TreeNode KthNode(TreeNode pRoot, int k) { if(pRoot == null || k < 1 ){ return null; } //ArrayList<Integer> list = new ArrayList<Integer>(); //list.add(k); return KthNode(pRoot,new Integer(k)); } public static TreeNode KthNode(TreeNode p,Integer K){ TreeNode target = null; if(p.left != null){ target = KthNode(p.left,K); } if(target == null){ K--; if(K == 0){ target = p; } } if(target == null && p.right != null){ target = KthNode(p.right,K); } return target; } ``` 本意是使用Integer对象的引用再函数间传递，使得函数内的修改可以反映到上一层，但是现在下层函数的修改却不能体现到上一层函数，而使用list对象就可以

``` public class OPT { private final int capacity = 3;// 构造一个初始容量为3的空列表 private int[] index = new int[2];//申请数组下标的容量为2 private List<Integer> list = new ArrayList<Integer>(capacity);//定义一个有界阻塞容器capacity即队列 public OPT(int[] arr) { for (int i = 0; i < arr.length; i++) { if (list.size() < capacity) { // 小于list初始容量 if (!list.contains(arr[i])) { // list没有该页面，将其添加进list尾部 list.add(arr[i]);//列表+1 } else { continue; } } else {// 超出list容量 index[0] = 100; index[1] = 101; if (!list.contains(arr[i])) { // 下一个页面如果不在list中 int a = 0; for (int j = i; j < arr.length; j++) { if (list.contains(arr[j])) { // arr[j]这个页面会在测试数据中会出现较早 if (index[0] != list.indexOf(arr[j])) { //indexOf()的用法：查找arr[j]中，第一次出现指定字符串的位置。 位置不是下标为0 index[a++] = list.indexOf(arr[j]);// 返回此列表中首次出现的指定元素的索引 if (a == 2) { break; } } } } list.set(noExist(), arr[i]);// 置换掉永不使用的,或许在最长时间内不再访问的页面 } else { // 下一个页面在list中 continue;//列表保持不变 } } traverse();//调用traverse函数 } System.out.println("访问页面需从外存调入的次数为："+(num-1));//计算访问页面需要从外存调入的次数 System.out.println("缺页率为："+(1-(float)(num-1)/arr.length));//计算缺页率 } ``` [https://blog.csdn.net/AdvancingStone/article/details/79110586]( "这是我的参考代码，我需要的帮助是具体解释OPT和LRU及其调用的MyStack栈的每行代码的具体注释")
java 子线程结束结束 内部子线程也结束 具体看代码注释
import java.util.ArrayList; import org.junit.Test; /** * 代码很简单的 就是起了一个线程 然后在一个list里面放了1000个数字 然后打印以下 * * 但是test方法 用junit起的 不能完全打印 而main可以 * * 最终是想要使得这个test方法能和main的效果一样 * */ public class TestSub { @Test public void test() { /** * 此处是在junit测试下面执行的线程 但是list里面的值不能被完全打印出来 * 我猜想这个方法是在一个子进程里面进行的 而里面又有一个子线程 但是最外层的子线程（test方法）一结束 里面的子线程也全部结束 */ new Thread(new Runnable() { @Override public void run() { long start = System.currentTimeMillis(); ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 1000; i++) { list.add(i); } for (Integer value : list) { System.out.println("list size : " + list.size() + " current value : " + value); } long end = System.currentTimeMillis(); System.out.println("takes time :" + (end - start)); } }).start(); System.out.println("线程执行结束 test方法执行完毕"); } /** * main函数的线程 与 上面测试方法的子线程不同 它执行完方法后 里面的子线程仍旧会执行完毕 * 如何让上面的test方法与main函数执行的结果一样 * * @param args */ public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { long start = System.currentTimeMillis(); ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 1000; i++) { list.add(i); } for (Integer value : list) { System.out.println("list size : " + list.size() + " current value : " + value); } long end = System.currentTimeMillis(); System.out.println("takes time :" + (end - start)); } }).start(); System.out.println("主线程执行结束 main方法执行完毕"); } }
Android中用线程访问网络之后得到的数据怎么在其他函数（非UI）中使用？

String[] turn1 = idList.split(","); String[] turn2 = labelList.split(","); Attribute attribute = new Attribute(); List<Attribute> Temp = new ArrayList<Attribute>(); for(int i=0;i<turn1.length;i++){ long getId; getId = Integer.parseInt(turn1[i]); attribute.setId(getId); attribute.setLabel(turn2[i]); Temp.add(attribute); } for(int i=0;i<3;i++) System.out.println(Temp.get(i)); 就是我现在turn1.length只有3组数据，Add进去Temp之后应该是有三组不同的数据才对。但是现在我Add进去之后虽然是有三组对象，但是里面的数据竟然全部是最后一组的数据。 我现在debug模式下看到三次attribute的数据都是不同的，现在是每循环一次当前的attribute就会把Temp里面的前一组数据给覆盖掉，这是为什么？ 输出数据 isPK=false,oid=0,id=1354,name=<null>,label=额定电压 isPK=false,oid=0,id=1354,name=<null>,label=额定电压 isPK=false,oid=0,id=1354,name=<null>,label=额定电压
JAVA初学者练习题，求找错
``` package report5; import java.util.ArrayList; public class Student { int id; String name; ArrayList<Integer> quizResult =new ArrayList<Integer>(10) ; public Student() {} public Student( int id){ this.id=id; } public Student(int id, String name){ this.id=id; this.name=name; } public void setID(int id){ this.id=id; } public void setName(String name){ this.name=name; } void setAllResult(int a, int b, int c, int d, int e){ quizResult.add(a); quizResult.add(b); quizResult.add(c); quizResult.add(d); quizResult.add(e); } void setUpdate(int index, int value){ quizResult.set(index,value ); } int sum() { int sum=0; for(int i:quizResult) sum+=quizResult.get(i) ; return sum; } void print(){ System.out.printf("%d %s ",id,name); for(int i=0; i<quizResult.size() ;i++) System.out.printf("%d ",quizResult.get(i) ) ; System.out.printf("(Total %d,Average %d",sum(),sum()/5); } } ``` 测试class ``` package report5; public class test { static void method1() { Student aaa=new Student(); Student bbb=new Student(234567); Student ccc=new Student(345678,"hongg"); aaa.setID(123456); aaa.setName("chengwuql"); aaa.setAllResult(7, 9, 7, 9, 6); bbb.setName("kang"); bbb.setAllResult(7, 5, 1, 8, 8); ccc.setAllResult(8, 9, 8, 4, 8); aaa.print(); bbb.print(); ccc.print(); } public static void main(String[] args) { method1(); } } ``` 题目是 使用 给定的部分代码 然后完成。。。 求 aaa bbb ccc 三人五次的成绩 和平均成绩 考察 重载的构造函数 输出结果 ``` 123456 chengwuql 7 9 7 Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 7 out-of-bounds for length 5 at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source) at java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source) at java.base/java.util.Objects.checkIndex(Unknown Source) at java.base/java.util.ArrayList.get(Unknown Source) at report5.Student.sum(Student.java:47) at report5.Student.print(Student.java:54) at report5.test.method1(test.java:17) at report5.test.main(test.java:24) ``` 本人不太会用arraylist ，应该是这里出问题了，谢谢

【小白Java问题】为什么这个while循环达到条件了却终止不了？
``` package CityDistance; import java.util.ArrayList; import java.util.HashMap; import java.util.Scanner; public class CityDistance { private ArrayList<String> city = new ArrayList<String>(); private int answer = 0; HashMap<String, Integer> distance = new HashMap<String, Integer>(); public void input() { Scanner in = new Scanner(System.in); String temp = null; while ((temp = in.next()) != "###") { city.add(temp); } int number = city.size(); for ( int i = 0; i < number; i++ ) { for ( int j = 0; j < number; j++ ) { String key = "" + city.get(i) + city.get(j); distance.put(key, in.nextInt()); } } in.close(); } public int FindDistance(String A, String B) { String str = A + B; answer = distance.get(str); System.out.println(answer); return answer; } public static void main(String[] args) { Scanner in = new Scanner(System.in); CityDistance cd = new CityDistance(); cd.input(); cd.FindDistance(in.next(), in.next()); in.close(); } } ``` 输入如下： aaa bbb ccc ### 0 1 2 1 0 3 2 3 0 aaa bbb input 函数里的第一个 while ，已经设定好了遇到 "###" 的输入就停止往 city 里加东西，但调试时发现 while 并没有停止，反而把后面的0、1、2都添到 city 里去了…… ![图片说明](https://img-ask.csdn.net/upload/201511/05/1446738161_940952.jpg) 跪求大神解答！

android studio做了个APP，其它用了JSOUP，碰到dopostback函数，无法加载

spring-data-elasticsearch 一对多

android 关于listview convertview的一些问题，求解！
java分页运行后无法点击换页，其他正常，求大神指教
public class PageBean { private static final int size=5; private int count;//总条数 private int pageSize;//每页条数 private int pageCount;//总页数 private int curPage;//当前页 public PageBean(){ this.pageSize=size; curPage=1; } public PageBean(int pageSize){ this.pageSize=pageSize; curPage=1; } // public int getPCount(){ // System.out.println("==============="+pageCount); // return pageCount; // } public int getCount() { //System.out.println("============"+count); return count; } public void setCount(int count) { this.count = count; //计算总页数 this.pageCount=count%this.pageSize==0?count/this.pageSize:count/this.pageSize+1; System.out.println("====~~~~"+pageCount); } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageCount() { //this.pageCount=this.count%this.pageSize==0?this.count/this.pageSize:this.count/this.pageSize+1; System.out.println("==============="+pageCount); return this.pageCount; } public void setPageCount(int pageCount) { this.pageCount = pageCount; } public int getCurPage() { return curPage; } public void setCurPage(int curPage) { this.curPage = curPage; } public int prePage(){ if(this.curPage==1){ return 1; } return this.curPage-1; } public int nextPage(){ if(this.curPage==pageCount){ return pageCount; } return curPage+1; } public int getStart(){ return this.pageSize*(this.curPage-1); } public class DbDao { private Statement st; public DbDao(Statement st) { // TODO 自动生成的构造函数存根 this.st = st; } public int insert(String sql) { int t = 0; try { t = st.executeUpdate(sql); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return t; } public int update(String sql) { int t = 0; try { t = st.executeUpdate(sql); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return t; } public int del(String sql) { int t = 0; try { t = st.executeUpdate(sql); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return t; } public ResultSet query(String sql) { ResultSet rs=null; try { rs = st.executeQuery(sql); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return rs; } public ResultSet pageQuery(String sql,PageBean page) { ResultSet rs=null; try { int count=queryCount(sql); if(count==0){ return null; } page.setCount(count); sql=sql+" limit "+page.getStart()+","+page.getPageSize(); rs = st.executeQuery(sql); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return rs; } public int queryCount(String sql){ String countsql="select count(*) c from ("+sql+")t"; ResultSet rs=this.query(countsql); try { if(rs.next()){ return rs.getInt(1); } } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); return 0; } return 0; } @Override protected void finalize() throws Throwable { // TODO 自动生成的方法存根 super.finalize(); if(st!=null) { st.close(); } } public <E> List<E> queryObjectList(String sql,String ClassName) throws SQLException, IllegalArgumentException, IllegalAccessException, InstantiationException, ClassNotFoundException { //连接数据库 ResultSet rs=this.query(sql); ResultSetMetaData meta=rs.getMetaData(); int count=meta.getColumnCount();//字段的数量 Class cla=Class.forName(ClassName); Field[] fs=cla.getDeclaredFields(); List<E> list=new ArrayList<E>(); while(rs.next()) { Object obj=cla.newInstance(); for(int i=1;i<=count;i++)//数组的字段 { for(Field f:fs)//类里的属性 { //类的字段名称==数据库字段名称 赋值 if(f.getName().equals(meta.getColumnName(i))) //属性是否和字段一样 { if("INT".equals(meta.getColumnTypeName(i))) { f.set(obj, rs.getInt(meta.getColumnName(i))); } if("VARCHAR".equals(meta.getColumnTypeName(i))) { f.set(obj, rs.getString(meta.getColumnName(i))); } } } } list.add((E)obj); } rs.close(); return list; } public class Testservlet extends HttpServlet { /** * */ private static final long serialVersionUID = -5562520410425589914L; @Override protected void service(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { // TODO 自动生成的方法存根 try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); }//驱动 String url = "jdbc:mysql://127.0.0.1:3306/mysql_test";//url Connection conn=null; Statement st=null; try { conn = DriverManager.getConnection(url, "root", "heihei77"); st=conn.createStatement(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } String name=""; Integer age=0; if(req.getParameter("username")!=null&&req.getParameter("username").trim()!=""){ name=req.getParameter("username").trim(); } if(req.getParameter("age")!=null&&req.getParameter("age").trim()!=""){ age=Integer.parseInt(req.getParameter("age").trim()); } //查询当前表格的数据 DbDao dbDao = new DbDao(st); //ResultSet rs=null; PageBean pageBean=new PageBean(); String page=req.getParameter("page");//?????????????????????? if(page!=null&&!"".equals(page)){ pageBean.setCurPage(Integer.parseInt(page.trim())); } List<User> list=new ArrayList<User>(); try { ResultSet rs=dbDao.pageQuery("select id,name,age from sqlpp",pageBean); if(rs!=null){ while(rs.next()){ User u=new User(); u.setAge(rs.getInt("age")); u.setId(rs.getInt("id")); u.setName(rs.getString("name")); list.add(u); }} rs.close(); } catch (SQLException e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); } //保存list req req.setAttribute("list", list); req.setAttribute("pageBean", pageBean); req.getRequestDispatcher("userList.jsp").forward(req, response); }

《奇巧淫技》系列-python！！每天早上八点自动发送天气预报邮件到QQ邮箱

11月8日，由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办，科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。 　　区块链技术被认为是继蒸汽机、电力、互联网之后，下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力，电力解决了人类基本的生活需求，互联网彻底改变了信息传递的方式，区块链作为构造信任的技术有重要的价值。 　　1...

C语言魔塔游戏

Android性能优化(4)：UI渲染机制以及优化

Python爬虫爬取淘宝，京东商品信息

Java工作4年来应聘要16K最后没要,细节如下。。。

SpringBoot2.x系列教程（三十六）SpringBoot之Tomcat配置
Spring Boot默认内嵌的Tomcat为Servlet容器，关于Tomcat的所有属性都在ServerProperties配置类中。同时，也可以实现一些接口来自定义内嵌Servlet容器和内嵌Tomcat等的配置。 关于此配置，网络上有大量的资料，但都是基于SpringBoot1.5.x版本，并不适合当前最新版本。本文将带大家了解一下最新版本的使用。 ServerProperties的部分源...
Python绘图，圣诞树，花，爱心 | Turtle篇

CPU对每个程序员来说，是个既熟悉又陌生的东西？ 如果你只知道CPU是中央处理器的话，那可能对你并没有什么用，那么作为程序员的我们，必须要搞懂的就是CPU这家伙是如何运行的，尤其要搞懂它里面的寄存器是怎么一回事，因为这将让你从底层明白程序的运行机制。 随我一起，来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说，我们首先就要搞明白它是怎么回事，也就是它的内部构造，当然，CPU那么牛的一个东...

2020年全新Java学习路线图，含配套视频，学完即为中级Java程序员！！

B 站上有哪些很好的学习资源?

Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题，让视音频内容可以不依赖用户安装App，就能进行播放以及在社交平台进行传播。在视频业务大数据平台中，播放数据的统计分析非常重要，所以Web播放器在使用过程中，需要对其内部的数据进行收集并上报至服务端，此时，就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢？ 01 监听事件明细表 名...
3万字总结，Mysql优化之精髓

HTML5适合的情人节礼物有纪念日期功能