一般编写代码,需要用ArrayList对象时,都会像下面一样生成:
List list = new ArrayList();
这样写主要是符合了java面向对象的思想
但有次编写代码时,需要使用到ArrayList的clone方法,而这个方法是在ArrayList中定义的,在List这个接口中并没有
这时让我感到很困惑,本来这样生成ArrayList对象是很提倡的,可是却局限了ArrayList的使用方法
不知道各位大神,是否能解开小弟困惑,又或者有其他方式使用实现类自己的方法
一般编写代码,需要用ArrayList对象时,都会像下面一样生成:
List list = new ArrayList();
这样写主要是符合了java面向对象的思想
但有次编写代码时,需要使用到ArrayList的clone方法,而这个方法是在ArrayList中定义的,在List这个接口中并没有
这时让我感到很困惑,本来这样生成ArrayList对象是很提倡的,可是却局限了ArrayList的使用方法
不知道各位大神,是否能解开小弟困惑,又或者有其他方式使用实现类自己的方法
java提倡面向接口编程 不面向实现编程这样可以充分利用java的多态特性 实现与具体对象的解耦 同时能够做到在运行时的时候才确定具体执行的操作。但是就像你所提到当前情况,没有什么东西是一成不变的,这才是写程序的乐趣,另外针对你刚说到的这个情况,你可以在程序中用强制类型转换去调用(ArrayList)list.clone()。
clone()方法是Object类保护方法,所以你调不动的,要调用重新向下造型list到原本的实现类,然后调用即可,克隆接口就不知道怎么理解了
这是官网上一段解释
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.
List 定义的接口, ArrayList 是具体实现类。
clone方式从Object对象集成。 List接口是不会定义clone方法。
推荐看看Java编程思想,从目录你会找到你感兴趣的章节。
相关推荐
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, Object>> resultList = new ArrayList, Object>>(); for (AnnouncementBean announcementBean : listAnnouncementBean) { Map, Object> map = new HashMap, Object>(); map.put("ACTID", announcementBean....
List<String> warnings = new ArrayList(); boolean overwrite = true; //指向逆向工程配置文件 File configFile = new File("config.xml"); ConfigurationParser cp = new ConfigurationParser...
这些数据可以先用List初始化,然后再转换为ArrayList。 ```csharp using System; using System.Collections; // 假设我们有以下数据 List<string> students = new List() { "张三", "李四", "王五", ... }; // ...
这个测试程序将为每种遍历方法生成一个运行时间,从而帮助我们了解在特定数据量下哪种方法更为高效。需要注意的是,实际的性能差异可能因环境因素(如JVM优化、硬件性能等)而有所不同。 在大多数情况下,如果在单...
List<String> list = new ArrayList(); list.add("Item1"); list.add("Item2"); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(list); ``` 2. **Gson**: Google的...
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上进行添加、删除和修改操作,你可以使用`ArrayList`的构造器,将`Arrays.asList(strArray)`的结果转换为标准的`ArrayList`。这样做后,`ArrayList`支持所有的List操作。关键代码如下: ```java ...
List<PersonBean> personList = new ArrayList(); //... 填充personList Gson gson = new Gson(); String jsonString = gson.toJson(personList); ``` 在上面的代码中,`gson.toJson()`方法接收一个Java对象并将其...
值得注意的是,ArrayList虽然在.NET框架早期版本中广泛使用,但在.NET Framework 2.0及以后版本中,更推荐使用List,因为List提供了泛型支持,更安全且性能更好。如果要使用List生成随机列表,可以稍作修改: ```...
List,List,String>>>> bindList = new ArrayList,List,String>>>>(); for(int i=0;i();i++){ String localPart = qNameList.get(i).getLocalPart(); SoapBuilder builder = wsdl.binding().localPart(localPart)...
List<Person> personList = new ArrayList(); // 填充personList... String jsonString = JsonUtils.listToJson(personList); ``` 4. 联网调接口时,将JSON字符串作为参数发送。例如,使用OkHttp发送POST请求: ```...
ArrayList items = new ArrayList(); items.Add(new ListItem("选项1", "1")); items.Add(new ListItem("选项2", "2")); checkBoxList.DataSource = items; checkBoxList.DataTextField = "Text"; // 显示的文本...
List listMap = new ArrayList(); Map map = new HashMap(); map.put("EXTEND10", "EXTEND10"); map.put("PARENTNAME", "PARENTNAME"); map.put("ORGNAME", "ORGNAME"); map.put("CURRENTUSER", "CURRENTUSER...
List<String> list = new ArrayList(); for (int i = 0; i (); i++) { list.add(jsonArray.getString(i)); } ``` 或使用Gson库: ```java String jsonString = "[\"Apple\", \"Banana\", \"Cherry\"]"; ...
List<User> userList = new ArrayList(); // 添加User对象到list Gson gson = new Gson(); String jsonString = gson.toJson(userList); ``` `toJson()`方法会遍历List中的每个元素,并根据对象的属性生成对应的...
List<MyObject> myObjects = new ArrayList(); myObjects.add(new MyObject("John", 30)); myObjects.add(new MyObject("Jane", 25)); Gson gson = new Gson(); String jsonList = gson.toJson(myObjects); ``` 四...
List<Model> resultList = new ArrayList(); Model model = new Model(); model.setCode("01"); model.setName("测试1"); resultList.add(model); model = new Model(); model.setCode("02"); model.set...
List<String> list = new ArrayList(); list.add("元素1"); list.add("元素2"); service.sendList(list); String receivedString = service.receiveString(); // 使用receivedString } ``` 在实际应用中,...
除了`ArrayList`,对于其他类型的集合如`LinkedList`或`HashSet`,在打乱顺序前需要先转换为`List`,因为`Collections.shuffle()`只适用于`List`接口的实现。例如: ```java Set<Integer> set = new HashSet(); set....