我有这个代码:
public static Account[] LoadXml(string fileName) {
Account ths = new Account();
// load xml data
// put data into properties/variables
// the xml is in a structure like this:
/*
<accounts>
<account ID="test account">
<!-- account variables here -->
</account>
<account ID="another test account">
<!-- account variables here -->
</account>
</accounts>
*/
}
Run Code Online (Sandbox Code Playgroud)
我如何返回包含这些帐户的数组或集合?
每一个<account ID="test"></account>
都是它自己的Account
.
我听说最近是ArrayList
从System.Collections
是不是安全,是什么问题?安全是:可能有错误,或者可能有不良行为.
如何查询类型T的集合,返回T的所有项,其中任何T的属性包含一些字符串?
编辑:
假设我在检查包含之前将每个属性转换为字符串.
我有一个List <>声明,可以在整个类中访问
List<article> data;
Run Code Online (Sandbox Code Playgroud)
现在我正在使用一种方法来填充List <>:
StreamReader sr = new StreamReader(filePath);
while (!sr.EndOfStream)
{
string[] Line = sr.ReadLine().Split(';');
article newArticle = new article();
newArticle.articleNumber = Line[0];
newArticle.description = Line[1];
newArticle.articleId = Line[2];
try
{
data.Add(newArticle);
}
catch(NullReferenceException ex)
{
// Nothing to do here
}
}
Run Code Online (Sandbox Code Playgroud)
每次循环重复时,newArticle-Object都包含他的所有元素,因此它定义为非null.但它不会添加到数据列表<>.我错过了什么?
给定两个排序的整数数组A和B,将B合并为A作为一个排序的数组.
注意:您必须修改数组A以包含A和B的合并.不要在代码中输出任何内容.提示:C用户请将结果malloc成一个新数组并返回结果.
如果A和B中初始化的元素数分别为m和n,则执行代码后数组A的结果大小应为m + n
示例:
Input :
A : [1 5 8]
B : [6 9]
Modified A : [1 5 6 8 9]
Run Code Online (Sandbox Code Playgroud)
我的解决方案
public class Solution {
public void merge(ArrayList<Integer> a, ArrayList<Integer> b) {
int i=0,j=0;
ArrayList<Integer> al= new ArrayList<Integer>();
while(i<a.size() && j<b.size()){
if(a.get(i)<b.get(j)){
al.add(a.get(i));
i++;
}
else{
al.add(b.get(j));
j++;
}
}
while(i<a.size()){
al.add(a.get(i));
i++;
}
while(j<b.size()){
al.add(b.get(j));
j++;
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了第3个ArrayList,我合并了第一个和第二个ArrayLists的所有元素.现在我必须将3rd ArrayList的所有元素复制到第一个.我现在被困住了.因为,当我通过使用调整大小时
public static void ensureSize(ArrayList<Integer> list, int size){
list.ensureCapacity(size);
while(list.size()<size){
list.add(null);
}
}
ensureSize(a,al.size());
for(int …
Run Code Online (Sandbox Code Playgroud) 我想List<HashMap<String, Object>>
投入Set<StudentInfo>
我有方法
public List<HashMap<String,Object>> getStudentData(studentId);
Run Code Online (Sandbox Code Playgroud)
我想将结果转换为Set,所以我用过
Set<StudentInfo> studentFilteredInfo = new HashSet<>();
List<Map<String, Object>> studentCompleteRecord = getStudentData(1005);
studentFilteredInfo.addAll((Collection<? extends StudentInfo>studentCompleteRecord ));
Run Code Online (Sandbox Code Playgroud)
最初当我在localhost上使用java 8,eclipse和tomcat 8执行它时工作正常.
当我试图用maven构建它时
mvn clean package
Run Code Online (Sandbox Code Playgroud)
它将通过一个错误:
不兼容的类型: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
cannot be converted to java.util.Collection<? extends com.school.model.StudentInfo>
Run Code Online (Sandbox Code Playgroud) 为什么我们在 HashMap 和 HashSet 中使用 equals() 方法而不实现比较器接口?我在上面的概念中看到了一些示例程序。但是没有比较器接口,他们使用 equals() 和 hashcode() 方法。我的问题是,我们可以在没有比较器接口的情况下使用这些方法吗?我们还可以使用具有可比接口的 equals() 和 hashcode() 以及 compareTo() 方法吗?
我在这里的严重怀疑是,为什么我们使用新的Double(3434.34)?我们可以直接使用hm.put("Zara",3434.34)而不是hm.put("Zara",新的Double(3434.34)?大多数初学者可能有这个疑问,我只是提高它.请不要觉得奇怪,如果它看起来像孩子一样...任何澄清这肯定会帮助像我这样的新手..
Collection和Map有什么区别?
Map是Collection的子类吗?
我正在寻找某种具有固定大小的地图,例如20个条目,但不仅如此,我想只保留最低值,让我说我正在评估某种功能并在我的地图中插入结果(我需要地图,因为我必须保持键值)但我想只有20个最低的结果.我正在考虑排序然后删除最后一个元素,但我需要为数百万条记录做,所以每次添加值时排序效率不高,也许有更好的方法?感谢帮助.
collections ×10
java ×6
c# ×4
arrays ×3
hashmap ×2
arraylist ×1
dictionary ×1
generics ×1
jsp ×1
linq ×1
map ×1
null ×1
optimization ×1
set ×1
xml ×1