标签: arraylist

如何按字典顺序对ArrayList进行排序?

我正在尝试对表示卡值的字符串ArrayList进行排序.因此,有些卡包含字母("King"),有些包含仅包含数字("7")的字符串.我知道使用Collections.sort,但它只对包含字母的字符串进行排序.如何按行编号和按字母顺序对ArrayList进行排序?

编辑:对不起,当我查看排序时,我一定不会太注意.排序正常,我必须被一个10来到2之前的事实所抛弃.谢谢

java sorting string arraylist lexicographic

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

如何从对象的ArrayList获取属性列表

假设我有一个看起来像这样的对象:

public class Obj {
String foo;
String bar;
}
Run Code Online (Sandbox Code Playgroud)

如果我创建一个Obj类型的arraylist并填充它,有没有办法可以从ArrayList返回数组foo属性中所有对象的列表?

编辑:我应该更清楚,我不想通过迭代这样做

java arraylist

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

防止arraylist中的重复条目

假设我像这样创建一些对象类

public class thing {
        private String name; 
        private Integer num;

        public oDetails (String a, Integer b) {
            name = a;
            num = b;
        }
...gets/ sets/ etc
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个arraylist来保存这样的对象类.

ArrayList<thing> myList = new ArrayList<thing>;
thing first = new thing("Star Wars", 3);
thing second = new thing("Star Wars", 1);
myList.add(first);
myList.add(second);
Run Code Online (Sandbox Code Playgroud)

我想包含某种逻辑,以便在这种情况下......当我们尝试添加对象"second"而不是向arrayList添加新对象时,我们将second.getNum()添加到first.getNum().因此,如果您要遍历ArrayList,那么它就是

"Star Wars", 4
Run Code Online (Sandbox Code Playgroud)

我无法想出一个处理这个问题的优雅方法.随着arraylist的增长,搜索它以确定是否存在重复的名称项变得麻烦.任何人都可以提供一些指导吗?

java arraylist no-duplicates

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

未序列化的Arraylist总是空的

我在Java中有很多类,但这是我第一次尝试序列化任何东西.我创建了自己的课程,其中包括一个arraylist.主要对象是这些类的arraylist.我相信我已经做好了一切,但是当我再读回来时,arraylist总是空着的.

主要(主要是测试)类:

import java.io.*;
import java.util.ArrayList;

public class IOTest {
public static void main(String[] args) {
    ArrayList<Info> master = new ArrayList <Info>();
    Info a = new Info("a");
    Info b = new Info("a");
    Info c = new Info("a");
    master.add(a);
    master.add(b);
    master.add(c);
    print(master);
    save(master);
    ArrayList<Info> loaded = new ArrayList <Info>();
    load(loaded);
    System.out.println("Loaded List:");
    System.out.println("Loaded Size:" + loaded.size());
    print(loaded);
}

public static void save(ArrayList a){
    File f = new File("savefile.dat");
    try {
        FileOutputStream fos = new FileOutputStream(f);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(a); …
Run Code Online (Sandbox Code Playgroud)

java serialization arraylist

7
推荐指数
1
解决办法
1030
查看次数

向上转换为ArrayList对象然后向下转换为自定义ArrayList的成本

我有在我从数据库中获取数据的情况下,我想它上溯造型到ArrayList of objects,然后其向下转换到不同的自定义的ArrayList即List<User>,List<Groups>等等.

我的问题是向上转换为对象,然后向下转换为ArrayList,这将是成本,是高效还是良好的做法.

EDITED

List<User>, List<Groups>我不想获取数据等,而是根据我的需要获取数据ArrayList<objetcs>,我会将数据转发给ArrayList<User>, ArrayList<Groups>以后.

java arraylist object downcast upcasting

7
推荐指数
1
解决办法
1278
查看次数

使用特定顺序对(数组)列表进行排序

我有一个对象列表,我想用定义的顺序对它进行排序.对于前者 我有一个带有字段的对象String color.我想在颜色字段上对我的列表进行排序,使它总是首先是白色而不是蓝色而不是其他所有(如果可能的话,alph.有序但不是必需的):

Before sorting:         After sorting:
orange                  white
white                   blue
green                   yellow
brown                   orange
yellow                  black
black                   brown
...                     ...
Run Code Online (Sandbox Code Playgroud)

有这么简单的方法吗?

编辑:

我必须添加一个更复杂的...
如果可以有更多颜色具有相同的名称/基数怎么办?对于前者 whiteX,whiteY,whiteZ,blueA,blueB,......
所有的白人都必须比所有的黄色首先出现,而不是所有的黄色.用比较器解决这个问题仍有可能吗?(我无法想象......)

java sorting list arraylist

7
推荐指数
2
解决办法
7969
查看次数

只给出一个属性,从ArrayList中删除一个对象

我有一个项目的ArrayList,我希望能够通过只输入一个Item属性从列表中删除一个Item,例如它的数字(int ItemNumber).当我检查物品数量时,我也想做同样的事情.

这是我 equals()和contains()方法,做我需要在这里做任何改变?

public boolean contains(T anEntry) {
    boolean found = false;
    for (int index = 0; !found && (index < numberOfEntries); index++) {
    if (anEntry.equals(list[index])) 
        found = true;
    }//end for
    return found;
} // end contains

public boolean equals(Object object){
    Item item = (Item) object;
    if (itemNo == item.itemNo)
        return true;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

java casting arraylist object

7
推荐指数
1
解决办法
6731
查看次数

迭代外星人名单

假设我有一个由任意方法返回的列表:

List<E> someList = someObject.getList();
Run Code Online (Sandbox Code Playgroud)

someList可以someObject在另一个线程中随时更改.我无权访问someObject,并且someObject.getList()不返回同步或不可变列表实现.

我想迭代someList.不幸的是,由于列表可以更改,通过迭代通常不起作用:

// Sometimes throws ConcurrentModificationException
for(E element : someObject.getList()) {
    doSomething(element);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

那么如何迭代外来方法返回的列表(而不是线程安全)呢?

java concurrency arraylist

7
推荐指数
1
解决办法
123
查看次数

使用字母前的字母对Java ArrayList进行排序

我目前正在传递一个ArrayList来填充Android中TabLayout的标题.数组中的元素是字符串:["RCP", "RYL", "1", "2", "3", "4", "5", "6"].但不一定按顺序排列.

我想首先使用Letter元素(按字母顺序)返回列表,然后逐步增加整数.

我已经尝试过使用该Collections.sort方法,但这会返回一个数字上升的列表,然后在最后添加"R"字符串:["1", "2", "3", "4", "5", "6", "RCP", "RYL"]

为了澄清,我想对我的ArrayList进行排序,以便它返回["RCP", "RYL", "1", "2", "3", "4", "5", "6"]它也需要灵活,因为"R",字符串的标题可能会改变.

谢谢

java sorting android arraylist

7
推荐指数
1
解决办法
2402
查看次数

如何找出抽象列表中的对象?

我有一个称为会话的抽象类。讲座和教程扩展了会议。然后,我有一个称为注册的类,其中包含一个会话列表(讲座和教程)。如何在“注册”中的会话列表中循环,并仅从会话列表中返回讲座列表?

我的下一个问题是我应该存储2个列表。一个讲座列表和一个教程列表,而不是一个会话列表?这是因为会话列表对我来说毫无用处,我每次都必须遍历列表以获取有关讲座和教程的信息。有什么办法让我缺少所有讲座的对象吗?我是Java新手。

public class Enrolment {

    private List<Session> sessions;

    public Enrolment() {
        this.sessions = new ArrayList<>();
    }

    public addSession(Session session) {
        this.sessions.add(session);
    }
}
Run Code Online (Sandbox Code Playgroud)
public class Session {

    private int time;

    public Session(int time) {
        this.time = time;
    }
}
Run Code Online (Sandbox Code Playgroud)
public class Lecture extends Session {

    private String lecturer;

    public Lecture(int time, String lecturer) {
        super(time);
        this.lecturer = lecturer;
    }
}
Run Code Online (Sandbox Code Playgroud)
public class Tutorial extends Session {

    private String tutor;
    private int tutorScore;

    public Tutorial(int time, String tutor, int tutorScore) …
Run Code Online (Sandbox Code Playgroud)

java loops class list arraylist

7
推荐指数
1
解决办法
312
查看次数