当我这样做时会发生什么:
List<Integer> listA = new ArrayList<Integer>();
List<Integer> ListB = new ArrayList<Integer>();
listA = ...filled with some data...
listB = ...filled with some other data...
listA.clear();
listA = listB;
Run Code Online (Sandbox Code Playgroud)
值是复制还是仅重新引用?如果我现在(在此代码之后)listA.clear() 再次打电话,也会listB清楚吗?
我有一个arraylist,由于某些原因,它会覆盖所有以前的值,只返回最后添加的值.所以我要添加3个对象,这将是数组中最后一个对象的3倍.这是代码:(抱歉变量不是英文):
public class Convertor {
ArrayList<ArrayList<String>> hervormen = new ArrayList<ArrayList<String>>();
String Voornaam;
public Convertor(ArrayList<ArrayList<String>> hervormen)
{
this.hervormen=hervormen;
}
public ArrayList<HervormdeRij> Hervormen(){
ArrayList<HervormdeRij> hervormd = new ArrayList<HervormdeRij>();
HervormdeRij HervormdeRij = new HervormdeRij();
int teller = 0;
ArrayList<String> rij = new ArrayList<String>();
while (teller < hervormen.size()){
rij= hervormen.get(teller);
HervormdeRij.setDag(rij0(rij));
HervormdeRij.setUur(rij1(rij));
HervormdeRij.setDokterId(rij2DokterId(rij));
HervormdeRij.setDuur(rij2Duur(rij));
HervormdeRij.setAchternaam(rij5(rij));
HervormdeRij.setVoornaam(Voornaam);
HervormdeRij.setAdress(rij6(rij));
HervormdeRij.setGemeente(rij7(rij));
HervormdeRij.setTel(rij8(rij));
HervormdeRij.setCommentaar(rij10(rij));
HervormdeRij.setEmail(rij11(rij));
hervormd.add(HervormdeRij);
teller++;
}
return hervormd;
Run Code Online (Sandbox Code Playgroud)
所以"hervormd"总是2000次("hervormen".size())的最后一次"HervormdeRij".我真的没有看到我的代码中的错误?(而且我1000%肯定"hervormen"!=相同值的2000倍.)
提前致谢
我有这个奇怪的错误,我无法解决.谁能帮我?谢谢.
ArrayList<Choices> newSecurityChoicesList =
securityChoicesController.getChoicesList();
System.out.println("first-" + newSecurityChoicesList.size());
securityQuestion.getChoices().clear();
System.out.println("second-" + newSecurityChoicesList.size());
Run Code Online (Sandbox Code Playgroud)
一些解释:
我创造了这个newSecurityChoicesList ArrayList.它是方法中的局部变量.打印出的第一个系统给出了2的结果.
为什么第二次打印出来的结果为0?
当然这是因为这个securityQuestion.getChoices().clear();方法.但是为什么方法可以改变方法中的局部变量?此方法仅在应用程序的最后调用一次.
提前致谢.
我有这个ArrayList:
ArrayList<Double> debtList = datasource.debtList;
ArrayList<Double> feeList = datasource.feeList;
Run Code Online (Sandbox Code Playgroud)
如何在循环中的TableLayout中并排打印出这两个列表(格式无关紧要)?这是布局:
TableLayout table = (TableLayout) findViewById(R.id.myTableLayout);
Run Code Online (Sandbox Code Playgroud) 我有一个arraylist的arraylist,每个内部arraylist包含2个值,第一个是整数,第二个是字符串,所以基本上它看起来像:{5,some text},{12,some more},{3,甚至更多的文本}等,我想做的是把它排序,使它按最大整数到最小的降序排序,所以前面的例子看起来像:{12,更多文字},{5,一些text},{3,甚至更多文字},任何帮助都会提前感谢
码:
ArrayList <Integer> marks = new ArrayList();
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
Collections.addAll(marks, (Integer.parseInt(markInput.getText())));
marks.add(Integer.parseInt(markInput.getText()));
for (int j =0; j < marks.size(); j++) {
markdisplayTextArea.setText(Integer.toString(marks.get(j)));
}
Run Code Online (Sandbox Code Playgroud)
当用户输入JTextArea并按下"添加"按钮时,该程序应该在JTextArea的新行上显示每个数字.
它显示每个数字,但一次只显示一个.我希望输入的每个数字都以升序显示在新行上.因此,如果用户输入了4个数字,比如78,92,54和21,我希望它们显示如下:
21
54
78
92
我有这个问题.我有一个arrayList,我想将一些对象复制到另一个.更重要的是,每个对象都有一个特定的属性,我将其用作过滤器进行复制.不幸的是,我必须使用.NET 1.1,所以我不能使用lamda表达式.
你有任何想法吗?我想要做到这一点.我有解决方案,只使用foreach循环,但我想尽可能优化这个优化.
对不起我的英语不好.
ArrayList list = new ArrayList();
//Insert to list few objects
ArrayList specificList = get few objects from list using filter. For example Object.Name
Run Code Online (Sandbox Code Playgroud) 我想根据对象属性对ArrayList中的一些对象进行排序.对象有:
public class Minterm
{
String minTerm;
char flagTick;
String minTermDerive;
int groupNo;
String adjGroup;
static int MaxLiterals;
Run Code Online (Sandbox Code Playgroud)
然后我在主要方法中有这个:
ArrayList<Minterm> column =new ArrayList<Minterm>();
Run Code Online (Sandbox Code Playgroud)
然后我Minterm在列表中添加一些类型的对象.但最后我想组织它们并在成员变量groupNo(升序)上对它们进行排序.
我搜索并提出了我尝试过但没有成功的可比较和比较器接口.有没有其他方法可以做到这一点?或者我正在做比较器实现错误.
编辑: 以下是我为比较器编写的代码.请确认它是否会按升序排序?
package backEnd;
import java.util.Comparator;
public class Comp implements Comparator<Minterm>
{
@Override
public int compare(Minterm a, Minterm b)
{
return a.getgroupOne().compareTo(b.getgroupOne());
}
}
Run Code Online (Sandbox Code Playgroud)
我运行它:
Collections.sort(column , new Comp());
Run Code Online (Sandbox Code Playgroud)
似乎工作正常.但我对它没有完全理解.请确认它是否会按升序排序?
我的问题是这样的: c#list compare
但唯一需要注意的是:
我正在使用.NET Framework 2.0
那么如何在C#framework 2上比较两个列表并在项目不同时返回一个布尔值呢?
instance == anotherone fails
instance.Equals(anotherone) fails.
Run Code Online (Sandbox Code Playgroud)
编辑:
他们都是List
编辑2
我正在尝试比较列表值是否正确.我可以对它们进行排序,np.问题是如果项目的计数或值发生变化.例如:
List1->Item1 = "A"
List1->Item2 = "B"
List2->Item1 = "B"
List2->Item2 = "A"
//must return true
List1->Item1 = "A"
List1->Item2 = "B"
List2->Item1 = "B"
List2->Item2 = "C"
//must return false
List1->Item1 = "A"
List1->Item2 = "B"
List2->Item1 = "B"
List2->Item2 = "A"
List2->Item3 = "A"
//must return false, etc.
Run Code Online (Sandbox Code Playgroud)
谢谢和亲切的问候.
我不想要任何不必要的代码,但我也希望"安全".经验观察表明,下面的OrderBy什么都不做 - 列表已经正确排序.我可以依赖于这种情况,并删除OrderBy线吗?
HashSet<int> hashSet = new HashSet<int>();
List<int> listInts = new List<int>();
using (var file = new System.IO.StreamReader(selectedFile)) {
string line;
int lineNum = 0;
int Offset = (int)numericUpDownLinesOfContext.Value;
while ((line = file.ReadLine()) != null) {
lineNum++;
if (line.Contains(PlatypusToSearchFor)) {
// This adds the lines before and after that will provide the desired context
// (N lines from the log file before and after the searched for value)
hashSet.UnionWith(Enumerable.Range(lineNum - Offset, Offset * 2 + 1));
}
}
// …Run Code Online (Sandbox Code Playgroud)