一个类中声明两个方法
方法1.将二维数组存入txt文件中
方法2.读取txt文件并写出到新的二维数组中
package sparseArray;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class readwrite {
/**\
* 将二维数组存入txt文件中
* @param array
*/
public static void saveArray(int[][] array){
FileWriter fw = null;
try {
//1.写入到哪个文件
File file = new File("Array.txt");//这里用的相对路径(本工程下)
//2.创建输出流对象,传入文件对象
fw = new FileWriter(file);
//3.如果该文件不存在就创建
if (!file.exists()){
file.createNewFile();
}
//4.写入操作:遍历将数组写入txt文件中:
for (int i = 0; i < array.length; i++) {
//数据前n-1列尾部加入","
for (int j = 0; j < array[0].length-1; j++) {
fw.write(array[i][j]+",");
}
//数组最后一列后面不加","
fw.write(array[i][array[0].length-1]+"");
//换行
fw.write("\n");
}
//刷新,写入文件
fw.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭流
if (fw!=null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**\
* 读取txt文件并写出到新的二维数组中
* @return int[][]
*/
public static int[][] readArray(){
//将二维数组返回
FileReader fr = null;
BufferedReader br = null;
int[][] array = null;
try {
//1.指明要读取的txt文件的路径
fr = new FileReader("Array.txt");
//2.把文件放入缓冲流中
br = new BufferedReader(fr);
//3.创建一个集合用来存放读取文件中的内容
List<String> list = new ArrayList<>();
//3.1 用来存放一行的数据
String line;
//4.逐行读取txt文件中的内容
while ((line = br.readLine())!=null){
//4.1读取的行添加到list集合中
list.add(line);
}
//5.获取文件有多少行
int row = list.size();
//6.获取数组有多少列
String s = list.get(0);//先获取链表索引为0的值
int column = s.split("\\,").length;//然后根据正则表达式逗号获取有多少个逗号分开的数据,即行数
//7.根据文件行数和列数来创建一个新数组,用来返回稀疏数组
array = new int[row][column];
//8.记录输出当前行
int count = 0;
//9.遍历集合并将集合中的数据放入新数组array中
for (String str:list){
//10.将读取的数组用","来分割,用字符串数组来接收
String[] strs = str.split("\\,");
for (int i = 0; i < column; i++) {
array[count][i] = Integer.valueOf(strs[i]);
}
count++;//行数+1
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭流
if (fr!=null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (br!=null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//返回稀疏数组
return array;
}
}
主方法测试类:
public class SparseArray {
public static void main(String[] args) {
//1.创建一个原始的二维数组 11*11
int chessArr1[][] = new int[11][11];
//给棋盘赋值 0 无子 1 黑子 2蓝子
chessArr1[1][2] = 1;
chessArr1[2][3] = 2;
chessArr1[3][4] = 2;
chessArr1[6][5] = 1;
//............可以接着下//
//输出原始的二维数组
System.out.println("原始的二维数组为:");
for (int[] row: chessArr1){
//外层控制行数
for (int data: row){
//内层给每一行的数赋值
System.out.printf("%d\t",data);
}
System.out.println();
}
//二维数组转稀疏数组:
//1.遍历二维数组,取到非0数据的个数
int sum = 0;
for (int i = 0; i < chessArr1.length; i++) {
for (int j = 0; j < chessArr1.length; j++) {
if (chessArr1[i][j]!=0){
sum++;
}
}
}
//2.创建对应的稀疏数组
int sparesArr[][] = new int[sum+1][3];
//2.1给稀疏数组赋值
sparesArr[0][0] = 11;
sparesArr[0][1] = 11;
sparesArr[0][2] = sum;
//遍历二维数组,将非0值存放到sparesArr中
int count = 0; //用于记录第几个是非0数据
for (int i = 0; i < chessArr1.length; i++) {
for (int j = 0; j < chessArr1.length; j++) {
if (chessArr1[i][j]!=0){
count++;
sparesArr[count][0] = i; //第一个非0数据放在稀疏数组的第二行
sparesArr[count][1] = j; //第二个非0数据放在稀疏数组的第三行
sparesArr[count][2] = chessArr1[i][j];
}
}
}
System.out.println("得到的稀疏数组为:");
//输出稀疏数组的形式
for (int i = 0; i < sparesArr.length; i++) {
System.out.printf("%d\t%d\t%d\t\n", sparesArr[i][0], sparesArr[i][1], sparesArr[i][2]);
}
System.out.println();
//把稀疏数组存入到文件中
System.out.println("-----------------存盘--------------------");
readwrite.saveArray(sparesArr);
System.out.println("-----------------分割线--------------------");
//把稀疏数组从文件中写出到控制台
System.out.println("-----------------恢复--------------------");
int[][] array = readwrite.readArray();
for (int[] row:array){
for (int data:row){
System.out.printf("%d\t",data);
}
System.out.println();
}
System.out.println();
System.out.println("恢复原来的二维数组为:");
//恢复原来的二维数组
//1.创建原始的二维数组
int chessArr3[][] = new int[array[0][0]][array[0][1]];
//2.读取稀疏数组的后几行,并从第二行开始赋给原来的二维数组
for (int i = 1; i < array.length; i++) {
chessArr3[array[i][0]][array[i][1]] = array[i][2];
}
//3.输出恢复后的二维数组
for (int[] row:chessArr3){
for (int data:row){
System.out.printf("%d\t",data);
}
System.out.println();
}
}
}
导读:问答系统是自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛的应用。例如其应用场景有:智能语音交互、在线客服、知识获取、情感类聊天等。常见的分类有:生成型、检索型问答系统;单轮问答、多轮问答系统;面向开放领域、特定领域的问答系统;完成任务型、纯聊天型的问答系统。本文介绍的主要是我们在检索型、面向特定领域的问答系统,在落地过程中的尝试与思考。我们首先会简...
寫在最前:TextView也可以設置點擊監聽事件。但是會有一个小小的限制。那就是在Android里,默认有一个给TextView的属性是为false的。我们只需要将这个属性改为true即可: android:clickable="true"通常对于布局中的组件添加点击监听事件时,一个比较成熟与美观的做法是,让你的Activity实现onClicklistener这个接口,并且实现他的
很感谢 CSDN 网友 javatec 先生的这篇帖子。卓越品质,贵在坚持。每个人的成功,与坚持不懈的努力是分不开的,正如作者说的“每个人获得的成功都是经过努力的,我只想告诉大家,不仅仅是 IT 这一行,不管做哪一行,只要你努力了,成功就离你不远。”帖子原文部分如下: 首先我想说,同很多程序员一样,我是不善言辞的,只能用平实的言语来表达自己的感受。经常会来这里看大家发的帖子,却很
request请求参数from flask import request 就是 Flask 中表示当前请求的 request 对象,request对象中保存了一次HTTP请求的一切信息。args.get请求时,记录请求中的所有的参数,返回一个类字典格式数据类型。form.post 请求时, 记录请求中的所有的参数,返回一个类字典格式数据类型。from flask import Flask...
一.字体:font。属性在一个声明中设置所有字体属性。可设置的属性是(按顺序): "font-style font-variant font-weight font-size/line-height font-family".font-size和font-family的值是必需的。如果缺少了其他值,默认值将被插入,如果有默认值的话.1.font-style:文字样式。取值:norm...
首先要加两点总容易疑惑的解答:第一,newProxyInstance生成的并不是代理接口类 而是代理接口的实现类!!第二,动态代理本质是Proxy生成$Proxy0并代理了InvocationHandler!!1.通过newProxyInstance方法中通过代理类lodar和接口实现instance生成$Proxy0类(这个类实现了代理接口以及拥有代理所有接口的方法,并且可以传入多实现的实现类,但无法拥有继承类的实现接口方法,即使重写了父类接口的实现)public static Obj
1.图片自适应填满整个屏幕就是用背景图做的话,我想让这个图发生定位,但是还想让他们宽高100%设置除static定位外,top:0,left:0,right:0,bottom:0这个作用是;让明确宽高的盒子垂直水平居中,让无宽高的盒子填满父容器效果如下:代码如下:html<div id="text-center"> <div id="content"> <ul> <li class
http://www.lao8.org/article_1319/sshLinux 主机最常用的连接方式就是用ssh, 今天在用ssh secureshell slient远程连接的时候提示 "Connection closed by remote host" 主机连接关闭, 以前都是可以正常访问的,突然出现这个问题很郁闷.ssh提示 "Connection closed by rem...
全球与中国栓塞治疗设备行业应用现状调研与需求预测报告2022版---------------------------------------【修订日期】:2021年11月【搜索鸿晟信合研究院查看官网更多内容!】2021年,全球栓塞治疗设备市场规模达到了 百万美元,预计2027年将达到 百万美元,年复合增长率(CAGR)为 % (2021-2027)。中国市场规模增长快速,预计将由2021年的 百万美元增长到2027年的 百万美元,年复合增长率 % (2021-2027)。本报告研究“十三五...
在我的应用程序中有两个活动,即A和B.活动A:它有一个列表,可以简要显示有关项目的信息.单击A上的项目时,它会加载活动B.活动B:它有两个Web视图和几个列表视图.活动顶部由标题Web视图占用.活动的下半部分具有选项卡主机,它在第一个选项卡中托管第二个Web视图,其余每个选项卡都包含一个列表视图.问题:当用户从A导航到B时,堆大小会显着增加.即使在我从B导航回A之后,堆大小仍然是相同的.甚至没有字...
没用的话:好像很久没发博客了,主要是懒太蒟找不到水题。我绝对没弃坑...^_^还用些话:本文为博主原创文章,若转载请注明原网址和作者。进入正题: 先pa网址: bzoj :http://www.lydsy.com/JudgeOnline/problem.php?id=1050 codevs.cn:http://codevs.c...
查看metastore的日志,报错信息如下:... 47 more2016-11-14 16:10:00,881 ERROR [main]: metastore.MetaStoreDirectSql (MetaStoreDirectSql.java:<init>(135)) - Self-test query [select "DB_ID" from "DBS"] failed...