相关疑难解决方法(0)

何时在Java中使用LinkedList而不是ArrayList?

我一直只是一个人使用:

List<String> names = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

我使用接口作为可移植性的类型名称,因此当我问这些问题时,我可以重新编写代码.

何时应该LinkedList使用,ArrayList反之亦然?

java collections linked-list arraylist

2974
推荐指数
27
解决办法
102万
查看次数

"编程到界面"是什么意思?

我已经看过几次提到这个,我不清楚这是什么意思.你何时以及为何会这样做?

我知道接口有什么作用,但事实上我不清楚这一点让我觉得我错过了正确使用它们.

如果你这样做是这样的:

IInterface classRef = new ObjectWhatever()
Run Code Online (Sandbox Code Playgroud)

你可以使用任何实现的类IInterface吗?你什么时候需要这样做?我唯一能想到的是,如果你有一个方法,你不确定除了实现之外将传递什么对象IInterface.我想不出你需要多久做一次.

另外,你怎么能写一个接受实现接口的对象的方法?那可能吗?

language-agnostic oop interface

791
推荐指数
17
解决办法
16万
查看次数

Java中的数组或列表.哪个更快?

我必须在内存中保留数千个字符串,以便在Java中以串行方式访问.我应该将它们存储在数组中还是应该使用某种List?

由于数组将所有数据保存在连续的内存块中(与Lists不同),使用数组存储数千个字符串会导致问题吗?

java arrays performance list

339
推荐指数
15
解决办法
25万
查看次数

List和ArrayList有什么区别?

我最近在办公室的android项目中使用了ArrayList,我在List和ArrayList之间有点混淆,两者的区别是什么,我应该使用什么?

我也看到了它的一些实现.

List<SomeObject> myList = new ArrayList<SomeObject>();

ArrayList<SomeObject> myList = new ArrayList<SomeObject>();
Run Code Online (Sandbox Code Playgroud)

这两个实例有什么区别?

java android list arraylist

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

如何从Java中的ArrayList中切出ArrayList?

如何获取ArrayListJava中的数组切片?具体来说,我想做这样的事情:

ArrayList<Integer> inputA = input.subList(0, input.size()/2);
// where 'input' is a prepouplated ArrayList<Integer>
Run Code Online (Sandbox Code Playgroud)

所以我希望这可以工作,但Java返回List- 所以它是不兼容的.当我试图施展它时,Java不会让我.我需要ArrayList- 我该怎么办?

java arraylist

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

Java中的ArrayList或List声明

这两个声明有什么区别?

声明1:

ArrayList<String> arrayList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

宣言2:

List<String> arrayList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

java arraylist

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

更改ListView上所选项目的背景颜色

我想知道如何更改listView上所选项目的背景颜色.我只想更改用户点击的特定项目,这意味着如果用户点击另一个项目,它将是突出显示的项目.好吧,因为我希望它尽可能保持简单并使用默认的android listview我使用此代码:

record_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                try{
                    for (int ctr=0;ctr<=record_items.length;ctr++){
                        if(i==ctr){
                            record_list.getChildAt(ctr).setBackgroundColor(Color.CYAN);
                        }else{
                            record_list.getChildAt(ctr).setBackgroundColor(Color.WHITE);
                        }
                    }
                }
                catch (Exception e){
                    e.printStackTrace();
                }
                Log.v("Selected item",record_list.getItemAtPosition(i));
            }
        });
Run Code Online (Sandbox Code Playgroud)

好的,这个工作正常,但问题是它很慢.现在我想知道是否有任何其他方法可以做到,它将提供与我相同的输出.

我尝试使用record_list.getSelectedView().setBackgroundColor(Color.CYAN);但它给了我一个空指针异常.

我也尝试了selector.xml,但它也没有做到这一点.此外,ListView上有一个名为listSelector的属性.如文档"Drawable用于指示列表中当前选定的项目"所述,它是可绘制的.我也相信这应该可以做到这一点,是的,它可以在我的模拟器上完成,但不是在我的Galaxy选项卡上.我也尝试了其他方法,但没有任何方法可行,因为我想要它.

android android-layout

52
推荐指数
8
解决办法
22万
查看次数

在Java中创建一个新的ArrayList

假设我有一个名为的类Class,

我想创建一个新的ArrayList,它的值将是类型Class.

我的问题是:我该怎么做?

我无法从Java Api中理解.

我试过这个:

ArrayList<Class> myArray= new ArrayList ArrayList<Class>;
Run Code Online (Sandbox Code Playgroud)

java

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

Java - 从Interface类型而不是Class声明

在我正确掌握接口最佳实践的过程中,我注意到了以下声明:

List<String> myList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

代替

ArrayList<String> myList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

- 要我的理解,是因为它可以让有一天你不希望实现一个ArrayList但也许另一种类型列表的情况下的灵活性.

有了这个逻辑,我建立了一个例子:

public class InterfaceTest {

    public static void main(String[] args) {

        PetInterface p = new Cat();
        p.talk();

    }

}

interface PetInterface {                

    public void talk();

}

class Dog implements PetInterface {

    @Override
    public void talk() {
        System.out.println("Bark!");
    }

}

class Cat implements PetInterface {

    @Override
    public void talk() {
        System.out.println("Meow!");
    }

    public void batheSelf() {
        System.out.println("Cat bathing");
    }

}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我无法访问batheSelf()方法,因为它仅适用于Cat.这使我相信,我应该只从接口中声明,如果我只打算使用的接口(而不是从子类中额外的方法)声明的方法,否则我应该直接从类(在这种情况下,猫)申报.我在这个假设中是否正确?

java interface

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

"程序到界面".这是什么意思?

可能重复:
"编程到接口"是什么意思?

我一直看到这个词:

编程到界面.

究竟是什么意思?真实的设计场景将受到高度赞赏.

java oop

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