0 0

为啥用List list=new ArrayList()生成0

一般编写代码,需要用ArrayList对象时,都会像下面一样生成:

List list = new ArrayList();

这样写主要是符合了java面向对象的思想

但有次编写代码时,需要使用到ArrayList的clone方法,而这个方法是在ArrayList中定义的,在List这个接口中并没有

这时让我感到很困惑,本来这样生成ArrayList对象是很提倡的,可是却局限了ArrayList的使用方法

不知道各位大神,是否能解开小弟困惑,又或者有其他方式使用实现类自己的方法

 

5个答案 按时间排序 按投票排序

0 0

采纳的答案

java提倡面向接口编程 不面向实现编程这样可以充分利用java的多态特性 实现与具体对象的解耦 同时能够做到在运行时的时候才确定具体执行的操作。但是就像你所提到当前情况,没有什么东西是一成不变的,这才是写程序的乐趣,另外针对你刚说到的这个情况,你可以在程序中用强制类型转换去调用(ArrayList)list.clone()。

2013年7月25日 13:13
0 0

clone()方法是Object类保护方法,所以你调不动的,要调用重新向下造型list到原本的实现类,然后调用即可,克隆接口就不知道怎么理解了

2013年7月25日 16:36
0 0

看书,结果进去了,出不来了?

2013年7月25日 14:51
0 0

这是官网上一段解释
first, List is an interface, it does not extend Object which has the clone method internally

second, list object does not have the method which exists in the List interface's implementation class ArrayList though.

2013年7月25日 11:33
0 0

List 定义的接口, ArrayList 是具体实现类。
clone方式从Object对象集成。 List接口是不会定义clone方法。

推荐看看Java编程思想,从目录你会找到你感兴趣的章节。

2013年7月25日 11:08

相关推荐

    FuionCharts Java根据List生成Json

    List<Student> list = new ArrayList(); Random rnd = new Random(); for (int i = 0; i ; i++) { Student student = new Student(); student.setCj(rnd.nextDouble()*100); student.setName("name"+i); list....

    List转换为List

    List, Object>> resultList = new ArrayList, Object>>(); for (AnnouncementBean announcementBean : listAnnouncementBean) { Map, Object> map = new HashMap, Object>(); map.put("ACTID", announcementBean....

    AutoMybatis.rar

    List<String> warnings = new ArrayList(); boolean overwrite = true; //指向逆向工程配置文件 File configFile = new File("config.xml"); ConfigurationParser cp = new ConfigurationParser...

    C#随即分组程序采用ArrayList数组编写

    这些数据可以先用List初始化,然后再转换为ArrayList。 ```csharp using System; using System.Collections; // 假设我们有以下数据 List<string> students = new List() { "张三", "李四", "王五", ... }; // ...

    java遍历list集合3种方式和性能对比

    这个测试程序将为每种遍历方法生成一个运行时间,从而帮助我们了解在特定数据量下哪种方法更为高效。需要注意的是,实际的性能差异可能因环境因素(如JVM优化、硬件性能等)而有所不同。 在大多数情况下,如果在单...

    将集合转换为Json的相关jar包

    List<String> list = new ArrayList(); list.add("Item1"); list.add("Item2"); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(list); ``` 2. **Gson**: Google的...

    json字符串转成 Map/List

    List, Object>> list = new ArrayList(); for (int i = 0; i (); i++) { JSONObject obj = jsonArray.getJSONObject(i); Map, Object> itemMap = new HashMap(); for (String key : obj.keySet()) { itemMap....

    list转数组.docx

    为了在转换后的List上进行添加、删除和修改操作,你可以使用`ArrayList`的构造器,将`Arrays.asList(strArray)`的结果转换为标准的`ArrayList`。这样做后,`ArrayList`支持所有的List操作。关键代码如下: ```java ...

    List<Bean>转JasonStringer

    List&lt;PersonBean&gt; personList = new ArrayList(); //... 填充personList Gson gson = new Gson(); String jsonString = gson.toJson(personList); ``` 在上面的代码中,`gson.toJson()`方法接收一个Java对象并将其...

    C#生成随机ArrayList的方法

    值得注意的是,ArrayList虽然在.NET框架早期版本中广泛使用,但在.NET Framework 2.0及以后版本中,更推荐使用List,因为List提供了泛型支持,更安全且性能更好。如果要使用List生成随机列表,可以稍作修改: ```...

    soap-builder.jar,工具包,可解析wsdl

    List,List,String&gt;&gt;&gt;&gt; bindList = new ArrayList,List,String&gt;&gt;&gt;&gt;(); for(int i=0;i();i++){ String localPart = qNameList.get(i).getLocalPart(); SoapBuilder builder = wsdl.binding().localPart(localPart)...

    Android list转json工具类

    List&lt;Person&gt; personList = new ArrayList(); // 填充personList... String jsonString = JsonUtils.listToJson(personList); ``` 4. 联网调接口时,将JSON字符串作为参数发送。例如,使用OkHttp发送POST请求: ```...

    关于checkboxlist的绑定和遍历checkboxlist

    ArrayList items = new ArrayList(); items.Add(new ListItem("选项1", "1")); items.Add(new ListItem("选项2", "2")); checkBoxList.DataSource = items; checkBoxList.DataTextField = "Text"; // 显示的文本...

    java poi导出excel含工具类以及示例

    List listMap = new ArrayList(); Map map = new HashMap(); map.put("EXTEND10", "EXTEND10"); map.put("PARENTNAME", "PARENTNAME"); map.put("ORGNAME", "ORGNAME"); map.put("CURRENTUSER", "CURRENTUSER...

    StringtoList和StringtoMap和StringtoObject和StringtoArray

    List&lt;String&gt; list = new ArrayList(); for (int i = 0; i (); i++) { list.add(jsonArray.getString(i)); } ``` 或使用Gson库: ```java String jsonString = "[\"Apple\", \"Banana\", \"Cherry\"]"; ...

    java后台与前端交互List转Json(Gson)

    List&lt;User&gt; userList = new ArrayList(); // 添加User对象到list Gson gson = new Gson(); String jsonString = gson.toJson(userList); ``` `toJson()`方法会遍历List中的每个元素,并根据对象的属性生成对应的...

    android中list数据与json互转

    List&lt;MyObject&gt; myObjects = new ArrayList(); myObjects.add(new MyObject("John", 30)); myObjects.add(new MyObject("Jane", 25)); Gson gson = new Gson(); String jsonList = gson.toJson(myObjects); ``` 四...

    excel-template-export.rar

    List&lt;Model&gt; resultList = new ArrayList(); Model model = new Model(); model.setCode("01"); model.setName("测试1"); resultList.add(model); model = new Model(); model.setCode("02"); model.set...

    AIDL List传递 String传递(android studio)

    List&lt;String&gt; list = new ArrayList(); list.add("元素1"); list.add("元素2"); service.sendList(list); String receivedString = service.receiveString(); // 使用receivedString } ``` 在实际应用中,...

    Java 实例 - 集合打乱顺序源代码-详细教程.zip

    除了`ArrayList`,对于其他类型的集合如`LinkedList`或`HashSet`,在打乱顺序前需要先转换为`List`,因为`Collections.shuffle()`只适用于`List`接口的实现。例如: ```java Set&lt;Integer&gt; set = new HashSet(); set....

Global site tag (gtag.js) - Google Analytics