标签: arraylist

使用其他列表对列表进行排序

是否可以将Java Collections排序方法与比较器一起使用,因为它会对一个列表进行排序,以便按原始列表的索引对另一个列表进行排序,以便列表保持配对?谢谢.

java sorting arraylist

6
推荐指数
1
解决办法
1654
查看次数

在二维ArrayList中添加元素

我知道对于数组,你可以这样在二维数组中添加一个元素:

 array[0][1] = 17; //just an example
Run Code Online (Sandbox Code Playgroud)

我怎么能用ArrayList做同样的事情?

java arraylist multidimensional-array

6
推荐指数
1
解决办法
6万
查看次数

为什么我不能在ArrayList <T>上调用Collections.sort()?

对于任何可能有这样问题的人,你可能需要"Collections.sort",而不是"Collection.sort",这是我在下面犯的错误.

我定义了一个定义为的类

public class Store implements Serializable, Comparable<Store> { ... }
Run Code Online (Sandbox Code Playgroud)

我在另一个类中有一个字段定义为:

ArrayList<Store> fStores = new ArrayList<Store>();
Run Code Online (Sandbox Code Playgroud)

我想对这个集合进行排序,所以在我调用的方法中:

Collection.sort(fStores);
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下编译错误:

The method sort(ArrayList<Store>) is undefined for the type Collection
Run Code Online (Sandbox Code Playgroud)

ArrayList实现List,并从文档中:

public static <T extends Comparable<? super T>> void sort(List<T> list)
Run Code Online (Sandbox Code Playgroud)

那么,为什么我会收到错误?我也尝试创建自己的Comparator后代,并将其传递给sort方法,但没有运气.

我猜这里有一些关于"<T延伸可比较<?超级T>>"我不理解......?

java sorting collections list arraylist

6
推荐指数
1
解决办法
2万
查看次数

OnCreateContextMenu和ListView项

我有一个带有几个项目的LisView.为此我连接了OnItemClickListener(作为内部类),如下所示:

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Toast.makeText(ShoppingListApp02Activity.this, "List item selected:" +  
    items.get(position).getId(), Toast.LENGTH_LONG).show();
    }
});
Run Code Online (Sandbox Code Playgroud)

很明显,选择一个entriy会显示该条目对象的元素,在本例中是所选Item对象的ID(不是列表ID,而是创建ArrayList项时设置的对象ID).这很好用,让我可以用选定的项目做任何我想做的事情.

现在我想要一个"长按"监听器,打开所选ListView项的上下文菜单.我怎么做?我已经能够将一个onCreateContextMenu监听器附加到ListView,但是我没有看到如何使用onItemClickListener获取ArrayList的元素?

这是我得到的:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {  
    menu.add(0, v.getId(), 0, "Something");
    menu.add(0, v.getId(), 0, "Something else");  
}
Run Code Online (Sandbox Code Playgroud)

由于OnCreateConextMenu采用与OnItemClickListener不同的参数,如何在OnItemClickListener中访问ArrayList的元素?

android contextmenu arraylist android-listview

6
推荐指数
3
解决办法
3万
查看次数

按数组列表自定义分页

我想在java代码中创建一个数组列表的自定义分页

import org.springframework.data.domain.Sort;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Sort.Direction;
...    

    int page = 0;
    int count = 8;
    String sortOrder = "desc";
    String sortBy = "id";

    Sort sort = new Sort(Direction.fromString(sortOrder), sortBy);
    PageRequest pageable = new PageRequest(page, count, sort);

    List<Impianto> impiantos = myService.findMyMethod(); // returned 30 objects 
    Page<Impianto> pageImpianto = new PageImpl<Impianto>(impiantos, pageable, impiantos.size()); 
Run Code Online (Sandbox Code Playgroud)

上面的脚本不会返回包含8个元素的页面.为什么?

NB列表没有从db返回

你能帮助我吗?

java spring pagination arraylist

6
推荐指数
1
解决办法
6196
查看次数

在java中向2d arraylist添加元素

ArrayList<Integer> a =new ArrayList<Integer>();
ArrayList<ArrayList<Integer>> j =new ArrayList<ArrayList<Integer>>();

a.add(1);
a.add(2);
a.add(3);

for(int c=0; c<10; c++){
    j.add(a);
}
j.get(3).add(1);
System.out.println(j);
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么这个代码为j的每个元素添加1而不是只有第三个元素,我该怎么做才能解决这个问题?

java arraylist

6
推荐指数
2
解决办法
5311
查看次数

ArrayList()的SilverStripe随机顺序

我知道我们可以随机排序DataList以下内容:

$example = Example::get()->sort('RAND()');
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试随机排序时,ArrayList它不起作用.我可以在排序ArrayList的ID DESC,但不能用RAND().

有没有办法ArrayList随机对其项目进行排序?

例:

public function AllTheKits() {
    $kits = Versioned::get_by_stage('KitsPage', 'Live');
    $kitsArrayList = ArrayList::create();

    foreach ($kits as $kit) {
        if ($kit->MemberID == Member::currentUserID()) {
            $kitsArrayList->push($kit);
        }
    }
    return $kitsArrayList;      
}
Run Code Online (Sandbox Code Playgroud)

在一个页面中:

public function getKitsRandom() {
    return $this->AllTheKits()->sort('RAND()');
}
Run Code Online (Sandbox Code Playgroud)

这在带有的模板中不起作用 <% loop KitsRandom %>

php arraylist silverstripe

6
推荐指数
1
解决办法
667
查看次数

如何计算ArrayList中的重复元素?

我需要分离和计算arraylist中的多少个值是相同的,并根据出现的次数打印它们.

我有一个名为数字的arraylist:

 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]
Run Code Online (Sandbox Code Playgroud)

我创建了一个方法来分隔每个值并将其保存到一个新数组.

public static ArrayList<Integer> myNumbers(int z) {

    ArrayList<Integer> digits = new ArrayList<Integer>();
    String number = String.valueOf(z);
    for (int a = 0; a < number.length(); a++) {
        int j = Character.digit(number.charAt(a), 10);
        digits.add(j);
    }
    return digits;

}
Run Code Online (Sandbox Code Playgroud)

在此之后,我有一个名为数字的新数组.我在这个数组上使用sort

Collections.sort(numbers);
Run Code Online (Sandbox Code Playgroud)

我的ArrayList看起来像这样:

[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, …
Run Code Online (Sandbox Code Playgroud)

java sorting arraylist

6
推荐指数
5
解决办法
2万
查看次数

在不同大小的列表上进行DiffUtil回调

我正在使用自定义实现DiffUtil回调比较两个列表以查找它们之间的差异,但是这两个列表具有不同的大小,并且当我在比较的'areItemsTheSame'和'areContentsTheSame'元素的两个列表中记录要比较的元素时,受包含最少元素的列表大小的限制,因此在我的适配器中调用“ dispatchUpdatesTo”时,将添加新项,但其内容与旧列表中的最后一项相同

这些方法的实现:

@Override
public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) {
    return mOldList.get(oldItemPosition).equals(mNewList.get(newItemPosition));
}

@Override
public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
    return mOldList.get(oldItemPosition).equals(mNewList.get(newItemPosition));
}
Run Code Online (Sandbox Code Playgroud)

例如:

(旧)列表A =“ A”,“ B”,“ C”,“ D”,“ E”,“ F”,“ G”,“ I”

(新)列表B =“ A”,“ B”,“ C”,“ D”,“ E”,“ F”,“ G”,“ I”,“ K”

在登录时,我发现“ areItemsTheSame”和“ areContentsTheSame”仅将元素最多与“ I”进行比较,因此对于所有调用均返回true,并且在为适配器调用dispatchUpdatesTo之后,将新项添加到列表中,但它是“ I”而不是“ k”

所以我得到的是列表A =“ A”,“ B”,“ C”,“ D”,“ E”,“ F”,“ G”,“ I”,“ I”

android arraylist android-recyclerview

6
推荐指数
1
解决办法
475
查看次数

单行从另一个列表初始化列表

我想以最短的方式初始化我的Dto列表.现在我正在使用:

public List<SomeItemDto> itemsToDto(List<SomeItem> items) {
    List<SomeItemDto> itemsDto = new ArrayList<SomeItemDto>();
    for (SomeItem item : items) {
        itemsDto.add(itemToDto(item));
    }
    return itemsDto;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让它成为一个单行程?

java initialization arraylist java-8 java-stream

6
推荐指数
1
解决办法
77
查看次数