在BLAS中有类似的例程
dscal scale a vector by a constant
dinit initialize a vector with given value
daxpy perform y = a*x + y
Run Code Online (Sandbox Code Playgroud)
等等.但是显然没有用于向量加法或向量减法的例程.如果这是真的,那是什么原因呢?
特别是因为有例程执行更多的琐碎操作,如dinit或dscal.当然人们可以使用daxpy带有a=1或a=-1从给定的向量执行加法/减法,但在我看来,是过于复杂.
我编写了一个程序,用于加密和解密使用四方密码读取的文件。目前,我将文件存储到字符数组中,将其传递到将其分解为二元组的函数中,并使用另一个函数中的嵌套 for 循环以这种方式对其进行加密。此时,我基本上正在尝试优化运行时间。是否有另一种方法可以迭代我正在使用的二维数组,该方法不使用两个 for 循环,或者最多只使用一个 for 循环?下面是相关代码:
文件处理程序.java
import java.io.*;
import java.util.*;
public class FileHandler {
private List<String> characters = new ArrayList<String>();
public char fileToChar[];
public void preEncryptionFile(String fileText) throws IOException {
String line;
FileInputStream fileReader = new FileInputStream(fileText);
DataInputStream dataInputStream = new DataInputStream(fileReader);
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(dataInputStream));
while ((line = bufferedReader.readLine()) != null) {
characters.add(line);
}
String charsToString = characters.toString();
charsToString = charsToString.replaceAll("[^a-zA-Z]", "").toUpperCase();
fileToChar = charsToString.toCharArray();
bufferedReader.close();
}
}
Run Code Online (Sandbox Code Playgroud)
FourSquareCipher.java
import java.util.*;
public class FourSquareCipher { …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 Object 数组内的类实例使用多态性:
ClassA a = new ClassA();
ClassB b = new ClassB();
Object[] classes = new Object[] { a, b };
Run Code Online (Sandbox Code Playgroud)
其中一个类的一个例子是:
public class ClassA
{
public string PrintOutput()
{
return "254,62,455,5,15,62,656";
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过类似的东西:C# class polymorphism
此人遇到的问题是他们创建了一个类型为 A(其中一个类)的数组。将数组类型更改为 Object 会导致错误:可以找到不包含方法定义的对象/无法找到接受对象类型的第一个参数的可访问扩展方法。
编辑:目前,我只是想打印每个类中方法的输出:
foreach (Object obj in classes)
{
Console.WriteLine(obj.PrintOutput());
}
Run Code Online (Sandbox Code Playgroud)
obj.PrintOutput() 是我收到上述错误的地方。