相关疑难解决方法(0)

有可能找出一些列表是否固定大小?

是否有可能找出某个列表是否固定大小?我的意思是,例如这段代码:

String[] arr = {"a", "b"};
List<String> list = Arrays.asList(array);
Run Code Online (Sandbox Code Playgroud)

返回List由数组支持的固定大小.但是,如果List是固定大小而不尝试添加/删除元素并捕获异常,是否有可能以编程方式理解?例如:

try {
    list.add("c");
}
catch(UnsupportedOperationException e) {
    // Fixed-size?
}
Run Code Online (Sandbox Code Playgroud)

java

25
推荐指数
2
解决办法
585
查看次数

为什么Java允许类型不安全的阵列分配?

通常,Java可以被视为类型安全的语言.我知道泛型有一些缺陷,但我最近遇到了一个前所未有的问题.要打破它:

Object[] objects = new Integer[10];
objects[0] = "Hello World";
Run Code Online (Sandbox Code Playgroud)

不会导致预期的编译时错误.我会假设一个数组的声明Object将不允许指向一个其他的数组.在泛型中,我不允许做出如下奇怪的事情:

ArrayList<Object> objs = new ArrayList<Integer>
Run Code Online (Sandbox Code Playgroud)

如果我试图欺骗Java做一些事情

ArrayList<? extends Object> objects = new ArrayList<Integer>
Run Code Online (Sandbox Code Playgroud)

我被允许声明它,但我只能添加类型的对象null.

为什么Java不会阻止声明这样的weired数组呢?

java arrays runtime-error declaration type-safety

15
推荐指数
2
解决办法
2527
查看次数

Java中的最大大小列表

在Java中拥有一个具有List的所有功能但具有最大存储容量的数据结构对我来说很有用,并且在添加新数据时丢弃旧数据.可以想象,在某些时候,我可能想要实现一个固定大小的队列,它保持数据的更一般顺序,并在该顺序中丢弃最旧的数据,但这是未来的.

目前我正在实现它:

public class FixedSizeList<T> {

  private final int maxSize;
  private final LinkedList<T> list = new LinkedList<T>();

  public FixedSizeQueue(int maxSize) {
    this.maxSize = maxSize < 0 ? 0 : maxSize;
  }

  public T add(T t) {
    list.add(t);
    return list.size() > maxSize ? list.remove() : null;
  }

  // add remaining methods...

}
Run Code Online (Sandbox Code Playgroud)

是否存在(a)满足我需求的现有数据结构,或者(b)实现此数据结构的更好方法?

java arrays linked-list list

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

从 ArrayList&lt;ArrayList&lt;Object&gt;&gt; 到固定大小的数组/列表

我有这个:

private ArrayList<ArrayList<Object>> models;
Run Code Online (Sandbox Code Playgroud)

在构造函数中我有:

models = new ArrayList<ArrayList<Object>>();
Run Code Online (Sandbox Code Playgroud)

后来,我做这样的事情:

models.add(new ArrayList<Object>());
Run Code Online (Sandbox Code Playgroud)

以及其他操作。

我想将外部 ArrayList 设为具有固定大小(数组、列表)的内容,但由于嵌套对象,我真的不知道如何编写声明、初始化、添加等。有人可以通过为我回答这个问题来节省我的时间吗?

java arrays arraylist

5
推荐指数
1
解决办法
822
查看次数

如何限制java列表中的条目数?

我知道如何限制 Map 的大小(像这样,使用 LinkedHashMap.removeEldestEntry 方法就是这样做的)

我想知道如何限制列表中的大小,最好的实现方法是什么?

感谢帮助 :)

java

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

将大小设置为TreeSet

有没有办法在Java Collections中为TreeSet提供大小限制,就像我们对数组一样?例如,在我们做的数组中,

anArray = new int[10];
Run Code Online (Sandbox Code Playgroud)

java

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

如何指定Jlist宽度?

我想指定我的JList的固定宽度

我按照吉尔伯特勒布朗克22k提供的例子

        getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS));
        Panel panel = new JPanel();
        panel.setBackground(Color.WHITE);
        getContentPane().add(panel);

        String [] queries = {"a", "b", "a", "b" , "a", "b", "a", "b"};
        panel.setLayout(new BorderLayout());
        JList list = new JList(queries);
        list.setMaximumSize(new Dimension(200, 200));  // this line does not do the job
        list.setMinimumSize (new Dimension (200,200));
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        list.setVisibleRowCount(5);
        JScrollPane scrollPane_1 = new JScrollPane(list);
        panel.add(scrollPane_1 , BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)

但这并没有强制规模200 200.我需要宽度为JScrollPane200

java swing jlist layout-manager preferredsize

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