是否可以创建回调函数 ArrayList 添加/删除方法。
ArrayList 将包含图像 url,我想在添加/删除新元素后立即运行我的代码(更新 UI)。
我正在和杰克逊做一个非常简单的测试。我有一个类并将其对象用作 Jersey 方法的参数和返回值。班级是:
import java.util.List;
public class TestJsonArray {
private List<String> testString;
public List<String> getTestString() {
return testString;
}
public void setTestString(List<String> testString) {
this.testString = testString;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个 Jersey 方法,它尝试将一个字符串添加到列表测试字符串中
@Path("/arrayObj")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Object createObjectArray(@QueryParam("param") String object) throws JsonGenerationException, JsonMappingException, IOException {
ObjectMapper objectMapper = new ObjectMapper();
TestJsonArray convertValue = objectMapper.convertValue(object, TestJsonArray.class);
convertValue.getTestString().add("hello");
return objectMapper.writeValueAsString(convertValue);
}
Run Code Online (Sandbox Code Playgroud)
当我用参数调用这个方法时
{"testString":["嗨"]}
我得到一个例外:
java.lang.IllegalArgumentException: Can not construct instance of test.rest.TestJsonArray, problem: no suitable creator method found to deserialize from JSON String …Run Code Online (Sandbox Code Playgroud) 我对 Java 很满意
ArrayList<String> list = new ArrayList<>();
Iterator<SignalEvent> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
if(s.equals("delete me")){
it.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
不太高兴,但对 C++ 感觉还可以
std::list<MyObject*> mylist;
for (list<MyObject*>::iterator it = mylist.begin(); it != mylist.end();)
{
MyObject* se = (*it);
if(se->bDelete == true)
it = mylist.erase(it);
else
it++;
}
Run Code Online (Sandbox Code Playgroud)
现在谈到 C#,这是最好的方法吗?
你有迭代器的方式吗?
考虑到性能和可读性,您有更好的建议吗?
for( int i = arrayList.Count - 1; i >= 0; i -- )
{
if( arrayList[ i ].ToString() == "del" )
{
arrayList.RemoveAt( i ); …Run Code Online (Sandbox Code Playgroud) 我想知道如果我使用原始数组然后重建它以添加这样的新元素,性能是否会有所不同:
AnyClass[] elements = new AnyClass[0];
public void addElement(AnyClass e) {
AnyClass[] temp = new AnyClass[elements.length + 1];
for (int i = 0; i < elements.length; i++) {
temp[i] = elements[i];
}
temp[elements.length] = e;
elements = temp;
}
Run Code Online (Sandbox Code Playgroud)
或者如果我只是使用ArrayList并添加元素。
我不确定这就是我问的原因,它的速度是否相同,因为 ArrayList 的构建方式与我对原始数组的构建方式相同,还是确实存在差异,即使我重新构建原始数组,它也总是更快每次我添加一个元素?
如何ArrayList在android中将变量从一个类调用到另一个类?我构架了ArrayListfrom Json Service,我尝试了很多方法,但是在如何将数组列表从一个类调用到另一个类时遇到了问题。我使用以下代码来构建数组列表HashMap:
下面显示的是 FirstActivityCLass
protected Integer doInBackground(Void... arg0) {
try {
JSONObject e = null;
System.out.println("In Background...");
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.detectAll().penaltyLog().build();
StrictMode.setThreadPolicy(policy);
String API = "http://traininglabs.com/nic/a-remainders-list.php?email="+email;
System.out.println(API);
JSONObject loginjson = JSONfunctions1.getJSONfromURL(API);
responseArray=loginjson.getJSONArray("user");
mylist=new ArrayList<HashMap<String,String>>();
for (int i = 0; i < responseArray.length(); i++)
{
map = new HashMap<String, String>();
JSONObject obj= responseArray.getJSONObject(i);
**String ss = obj.getString("id");
map.put("id", obj.getString("id"));**
map.put("state", obj.getString("status"));
map.put("entity", obj.getString("company"));
map.put("date", obj.getString("adate"));
s1 = e.getString("state");
s2 = e.getString("entity");
s3 …Run Code Online (Sandbox Code Playgroud) 我有我的冒泡排序来排序我的对象(最终)。但是,它们按升序而不是降序打印。据我所知,我知道我可以在数组上使用 Collections.Reverse,但是(是的,这是一种“家庭作业”)我不能使用它。
private void bubbleSort()
{
for (int i = 0; i < employees.size() - 1; i++)
{
for (int j = 0; j < employees.size() - i -1; j++)
{
if (employees.get(j).compareTo(employees.get(j+1)) > 0)
{
Employee temp = employees.get(j+1);
employees.set(j+1, employees.get(j));
employees.set(j, temp);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
基本上我想知道的是,有没有一种方法可以将减号更改为加号或将小于号更改为大于号,并以相反的方式对其进行排序?谢谢。
最近在使用 arrayList 时,我发现了一个奇怪的问题。我想在数组列表中保留 2 个元素,并希望在元素 0 中保留 object1,在 element1 中保留 object2。
我在循环中决定这个。
当它碰巧添加第一个元素时,它会抛出 indexOutofBounds。根据java doc,因为索引大于大小,所以这样做。
public static void main(String[] args)
{
ArrayList<String> list = new ArrayList<String>();
list.add(1,"SECONDITEM"); // throwing due to size is not set
list.add(0,"FIRSTITEM");
int postn=0;
for(String item:list){
System.out.println("Position "+postn+" :"+item);
postn++;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试将其他项目设置为 0,1 元素中的占位符并尝试做同样的事情
public static void main(String[] args)
{
ArrayList<String> list = new ArrayList<String>();
list.add(0,"x");
list.add(1,"y");
list.add(1,"SECONDITEM");
list.add(0,"FIRSTITEM");
int postn=0;
for(String item:list){
System.out.println("Position "+postn+" :"+item);
postn++;
}
}
Output:
Position 0 :FIRSTITEM
Position 1 …Run Code Online (Sandbox Code Playgroud) 我有一个这样的 ArrayList:
[5, 181, 138, 95, 136, 179]
Run Code Online (Sandbox Code Playgroud)
我想做的是将此列表转换为双 []。像这样的东西。
double[] Fails = new double[]{5, 181, 138, 95, 136, 179};
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
ArrayList<String> DatesList = new ArrayList<String>();
ArrayList<String> FailList = new ArrayList<String>();
while (rs2.next()) {
DatesList.add(rs2.getString("Date"));
FailList.add(rs2.getString("fail"));
}
double[] Fails = new double[]{FailList}; //obviously it doesn't work..
Run Code Online (Sandbox Code Playgroud)
有什么方法可以将 ArrayList 转换为 double[]?
我正在添加 中的所有项目arrayList,现在我只想在我的回收站视图中显示 10 个项目并单击更多 10 个等等。我想使用相同的arrayList.
我有一个函数应该使用给定ArrayList<String>并将输出返回为ArrayList<Integer>. 问题是NullPointerException提出来的hourList.add(hourInt);,我不知道为什么。
public ArrayList<Integer> takeTime(ArrayList<String> logs) {
ArrayList<Integer> hourList=null;
Integer hourInt;
for(String line: logs) {
String[] matrix = line.split(" ");
String[] hour = matrix[3].split(":");
// System.out.print(hour[0]+"\n");
String s = hour[0].replaceFirst("^0+(?!$)", "");
hourInt = Integer.parseInt(s);
System.out.print(hourInt+",");
hourList.add(hourInt); // <--- NullPointerException here
}
return hourList;
}
Run Code Online (Sandbox Code Playgroud)
System.out.print(hourInt+",");:
0,0,0,0,1,1,2,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10
Run Code Online (Sandbox Code Playgroud)