我一直只是一个人使用:
List<String> names = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
我使用接口作为可移植性的类型名称,因此当我问这些问题时,我可以重新编写代码.
何时应该LinkedList使用,ArrayList反之亦然?
我偶尔听说过,通用泛型,Java并没有把它弄好.(最近的参考,这里)
原谅我的经验不足,但是什么会让他们变得更好?
我一直在为一个类的Java项目工作.它是链表的实现(此处称为AddressList包含调用的简单节点ListNode).问题在于,所有事情都必须通过递归算法来完成.我能做的一切都很好,没有一种方法:public AddressList reverse()
ListNode:
public class ListNode{
public String data;
public ListNode next;
}
Run Code Online (Sandbox Code Playgroud)
现在我的reverse函数只调用一个辅助函数,该函数接受一个允许递归的参数.
public AddressList reverse(){
return new AddressList(this.reverse(this.head));
}
Run Code Online (Sandbox Code Playgroud)
我的助手功能有签名private ListNode reverse(ListNode current).
目前,我使用堆栈迭代地工作,但这不是规范要求的.我在C中找到了一个递归反转的算法,并手工将其转换为Java代码,但是它有效,但我对此并不了解.
编辑:没关系,我在此期间弄清楚了.
private AddressList reverse(ListNode current, AddressList reversedList){
if(current == null)
return reversedList;
reversedList.addToFront(current.getData());
return this.reverse(current.getNext(), reversedList);
}
Run Code Online (Sandbox Code Playgroud)
虽然我在这里,有没有人看到这条路线有任何问题?
我即将为一个业余爱好项目启动一个基于LFS的Linux发行版.我计划做一些非标准的任务,其中大部分都涉及更改发行版中的几乎所有脚本.(主要是init脚本,但我也会编写一套简单的包管理器脚本.)因为我要远离常规,因为我从未成为动态类型语言的粉丝(perl, python,bash和其他都很好,但不是我的强项),我想知道是否有人知道实际上已声明变量的解释语言.
只是想了解如何处理字符串数组中的单个字符.此外,这当然会让我理解指向一般订阅的指针.如果我有char **a,我想达到的第二个字符串的第3个字符,做这项工作:**((a+1)+2)?好像应该......
我正在开发一个项目,要求我使用大于c中最大数值数据类型的数字.我正在考虑使用带有位字段的结构来表示这一点,但它已经闻起来很糟糕了.有人有任何提示吗?(不是在寻找一个图书馆,更多的是一个思考过程,以便做这样的事情.)
当然,并不是说我无法访问javascript.在我的大多数CS Web开发课程中,我们都会学习一些关于服务器端验证的知识,然后一旦引入了javascript,服务器端验证就会被抛到窗外.
我选择不仅仅依赖于javascript,因为客户端从来都不是一个安全的地方.我已养成为这些事情编写客户端和服务器端代码的习惯.但是,对于我正在编写的具有可选AJAX的Web应用程序,如果有人关闭了javascript,我不希望密码通过网络发送明文.
我意识到我可能会问一个捕获22的情况,所以让我问一下:当我们可以依赖的是服务器端时,我们怎么知道我们用户的密码对同一网络上的恶意用户来说是安全的(足够的)脚本.在登录页面的第一个请求上,有没有办法让浏览器加密数据字段?
得到了一些我正在研究的C代码,它看起来应该可行.当我尝试链接目标文件时,我在main中的getLine函数中得到一个错误,说"对outputBus的未定义引用"等等.我在功能名称之前使用和不使用&符号尝试过它.用...编译gcc -ansi.我究竟做错了什么?
typedef void(*DualOutput)(const int, const int);
typedef void(*TripleOutput)(const int, const int, const double);
void passenger(node**, node**, itemtype*);
double bus(node**, node**, itemtype*);
int getLine(itemtype*, DualOutput, DualOutput);
void getLines(node**, node**, DualOutput, DualOutput, TripleOutput);
void outputBus(const int, const int);
void outputPeople(const int, const int);
void outputTotal(const int, const int, const double);
int main(int argc, char **argv){
node *head = NULL;
node *tail = NULL;
getLines(&head, &tail, outputBus, outputPeople, outputTotal);
return 0;
}
Run Code Online (Sandbox Code Playgroud) c ×3
java ×3
linked-list ×2
arraylist ×1
arrays ×1
biginteger ×1
collections ×1
cryptography ×1
encryption ×1
generics ×1
javascript ×1
linux ×1
package ×1
pointers ×1
recursion ×1
scripting ×1
security ×1
string ×1